我担心答案可能是“拆分项目”,但这里是......
我有一个项目,现在需要输出一个没有 log4j.xml 配置的 jar 文件版本。我想如果我能有双重输出那就太好了:一个带有 log4j.xml 的 jar 和一个没有 log4j.xml 的重复 jar。我不想将项目拆分为一个文件。我已经尝试过 Assembly 插件,但我认为我还没有找到正确的配置。
最佳答案
这种关系中的最佳解决方案是不使用配置文件,因为配置文件会强制您使用激活的配置文件再次运行构建,如果您喜欢使用发布插件等,则这将不起作用。最简单的解决方案是使用这样的分类器:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>second-jar</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>without</classifier>
<excludes>
<exclude>**/log4j*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
绑定(bind)到package阶段的默认绑定(bind)maven-jar-plugin将创建包含log4j.xml文件的jar文件,上面将创建不包含log4j.xml文件的jar文件,可以使用以下命令访问该jar文件分类器没有或者无论你如何命名。
这样做的优点是您可以通过一次 Maven 调用简单地创建两个 jar,例如:
mvn clean package
此外,它们将附加到项目并部署到适当的存储库。
关于maven - 如何让 Maven 为同一个项目生成两个 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16367068/