我可以强制 Maven 构建一个 JAR,即使 POM 打包指定 WAR 吗?
Can I force Maven to build a JAR even though POM packaging specifies WAR?
我想从命令行将我们的项目构建为 JAR,而不修改具有 <packaging>war</packaging>
配置的 POM。
有办法吗?
如果您可以自由选择maven的执行方式,可以调用maven直接调用jar目标:
mvn jar:jar
我无法在阻止构建 war 的同时显式构建 jar。但我意识到我不必这样做。使用 maven-assembly-plugin 的这种配置,并且在我的 POM 中将包装设置为 WAR,将始终创建一个 fat-jar 和一个 war。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<finalName>myApp</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.company.app.Startup</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
如果此问题/答案对搜索者来说令人困惑/无用,请随时将其删除。感谢所有帮助我来到这里的人。
我想从命令行将我们的项目构建为 JAR,而不修改具有 <packaging>war</packaging>
配置的 POM。
有办法吗?
如果您可以自由选择maven的执行方式,可以调用maven直接调用jar目标:
mvn jar:jar
我无法在阻止构建 war 的同时显式构建 jar。但我意识到我不必这样做。使用 maven-assembly-plugin 的这种配置,并且在我的 POM 中将包装设置为 WAR,将始终创建一个 fat-jar 和一个 war。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.5.3</version>
<configuration>
<finalName>myApp</finalName>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.company.app.Startup</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
如果此问题/答案对搜索者来说令人困惑/无用,请随时将其删除。感谢所有帮助我来到这里的人。