有没有办法把战争的依赖性放在WEB-INF / lib中,而不是放在自定义文件夹中?
我正在使用Maven 2
嗨,我需要的是,从war的依赖列表中,只有一个工件不应放在WEB-INF / lib中,而应放在WEB-INF / bundles /中,其他依赖应放在WEB-INF / lib中
THX
THX给大家,我无法更新到Maven 2.1所以我通过maven-antrun插件做到了)
答案 0 :(得分:4)
我认为您需要做的是创建依赖项provided
并使用mvn copy-dependencies
复制它。以下是使用apache commons / lang执行此操作的示例:
<dependencies>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<id>copydep</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<inherited>false</inherited>
<configuration>
<includeArtifactIds>commons-lang</includeArtifactIds>
<outputDirectory>$project.build.directory/${project.build.finalName}/web-inf/bundles</outputDirectory>
</configuration>
</execution>
</executions>
<configuration>
</configuration>
</plugin>
</plugins>
</build>
($project.build.directory/${project.build.finalName}
是用于组装战争的工作文件夹)
答案 1 :(得分:1)
Maven war plugin支持广泛的自定义。你的问题不清楚,你究竟想要什么,但this page应该有所帮助。
答案 2 :(得分:0)
你想把这些图书馆放在哪里?您必须小心,因为war structure将WEB-INF/lib
定义为第三方库的目录。位于此目录中的所有*.jar
文件将由容器(例如Tomcat)加载到Classpath中。
更改此目录可能对您的应用程序有害!
这就是为什么我不知道允许您更改此WEB-INF/lib
目录的Maven WAR Plugin配置参数。
如果您真的知道自己在做什么,可以尝试使用assembly创建自己的WAR。