我有一个非常具体的问题。 我创建了一个webapp,并希望除了Web战争之外还有一个jar类的jar构建。 没问题,我是这样做的:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<attachClasses>true</attachClasses>
</configuration>
</plugin>
此外,来自src / main / resources的资源也会进入jar。但由于这些资源仅适用于此Web应用程序,因此我不希望它们出现在jar中。我可以将它们移动到webapp src文件夹,但是我需要对属性文件进行过滤,因此它必须是一个资源文件夹,因此被war / jar构建包含在内。
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
我尝试通过配置maven-jar-plugin来排除它们:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<excludes>
<exclude>**properties</exclude>
</excludes>
</configuration>
</plugin>
适用于jar:jar的单个jar构建,但不幸的是没有安装阶段完成的jar构建。
有没有办法将这些配置应用到maven-war-plugin?
我知道我可以通过添加用于构建jar的执行,在本地安装以及将其部署到远程存储库来扩展配置,但这有点混乱。
欢迎任何帮助。
答案 0 :(得分:2)
执行此操作的一种方法是将Java源代码移动到单独的项目中,然后将其作为依赖项包含在WAR项目中。这样,您可以控制进入JAR文件的内容,并且可以将其他文件保留在WAR项目中,应用过滤等。
我发现将功能分解为细粒度项目通常是解决问题的最佳方法,而不是设置具有复杂配置的多个插件来执行相同操作。如果它需要复杂的设置,它可能是错误的方式。尽量保持简单: - )