haben zwei Profile, um ein abhängiges Jar für eine Webanwendung zu erstellen (eine für Tomcat und die andere für Websphere). Hier versuche ich, diese beiden Profile auf einmal zusammen zu bauen, um diese Gläser zusammen zu bauen.Ausführen mehrerer Maven-Profile über die Befehlszeile
mvn help:active-profiles -o -Dmaven.test.skip=true clean install -PTOMCAT,WEBSPHERE
Als Ergebnis dieser Hinrichtung wir Acme-tomcat-0.0.1-SNAPSHOT.jar und Acme-web-0.0.1-SNAPSHOT.jar aber zusammen mit diesen ein Standardglas erwarten wird auch erstellt acme-0.0.1-SNAPSHOT.jar. Dies scheint aufgrund der Standardausführung der Fall zu sein.
Wie können wir diese Standardausführung vermeiden, um die Generierung von Standard acme-0.0.1-SNAPSHOT.jar zu vermeiden. Wir haben eine couple of solutions hier in SO verwiesen, um dies zu erreichen, und auch wir haben made a similar post earlier, aber das wird uns in diesem Szenario nicht helfen. Alle Hinweise wären hilfreich.
Profilkonfiguration sieht aus wie
<profiles>
<profile>
<id>TOMCAT</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>tom-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-tomcat-${project.version}</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-core</artifactId>
<version>5.7.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
<version>1.0.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jboss.javaee</groupId>
<artifactId>jboss-jms-api</artifactId>
<version>1.1.0.GA</version>
</dependency>
</dependencies>
</profile>
<profile>
<id>WEBSPHERE</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>web-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-web-${project.version}</finalName>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-core</artifactId>
<version>5.4.3</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>geronimo-j2ee-management_1.0_spec</artifactId>
<version>1.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jboss.javaee</groupId>
<artifactId>jboss-jms-api</artifactId>
<version>1.1.0.GA</version>
<scope>provided</scope>
</dependency>
</dependencies>
</profile>
</profiles>
Danke, San
Könnten Sie hier einen Blick bitte: http://stackoverflow.com/questions/4101750/disable-the-execution-default-jar –
Hallo Danke für den Zeiger, jetzt änderte ich die Ausführungs-ID meines TOMCAT-Profils zu default-jar , um die Standardausführung zu überschreiben. Jetzt funktioniert der Pom wie vorgesehen. Aber ist es der richtige Weg? –
kallada
Der richtige Weg ist nicht die Verwendung von Profilen, um damit zu beginnen. Warum nicht zwei getrennte Projekte haben: ein tomcat-spezifischer und ein websphere-spezifischer? Beide erben von einem gemeinsamen POM? – Tunaki