我需要将文件从位置\MainProject\src\non-packaged resources复制到构建主项目时的\MainProject\sub-project2\sub-project2-web\src\main\resources位置。下面是我的sub-project2-web的pom文件的构建部分,但构建时不会复制该文件。
<build>
<finalName>sub-project2-web</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceExcludes>**/.copyarea.db</warSourceExcludes>
<packagingExcludes>**/.copyarea.db</packagingExcludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>/src/main/resources</outputDirectory>
<resources>
<resource>
<directory>/src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
观察构建日志时,它会跳过正在复制的文件并出现以下错误
skip non existing resourceDirectory
但是maven构建成功了。目标是将\MainProject\src\non-packaged资源中存在的文件绑定到构建maven项目的所有ear(sub-project1.ear,sub-project2.ear)。首先,我只想在sub-project2-web中测试这一点。请建议如何根据此要求提供正确的路径。我使用的是maven 2.2.1版本(项目就是基于此构建的)
根据以上答案,我找到了获取父目录和基目录位置的正确方法。下面对我有用。
<build>
<finalName>sub-project2-web</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warSourceExcludes>**/.copyarea.db</warSourceExcludes>
<packagingExcludes>**/.copyarea.db</packagingExcludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/src/main/resources</outputDirectory>
<resources>
<resource>
<directory>${project.parent.parent.basedir}/src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
参照项目基目录定义路径,如下所示。
<outputDirectory>${project.basedir}/sub-project2/sub-project2-web/src/main/resources</outputDirectory>
<directory>${project.basedir}/src/non-packaged-resources</directory>
然后将其添加到pom中。maven资源插件中的xml文件。
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${project.basedir}/sub-project2/sub-project2-web/src/main/resources</outputDirectory>
<resources>
<resource>
<directory>${project.basedir}/src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
在 jenkins 上执行 mvn 安装时,我收到此错误: [JENKINS]存档已禁用,等待JENKINS完成数据收集mavenExecutionResult异常非空消息:未能执行目标org.apache.maven.plugins:maven ear插件:2.9:ear(默认ear)在项目proj上ear:无法复制目录:/var/lib/JENKINS/jobs/proj/workspace/
问题内容: 有一个以前具有JAR打包类型的Maven项目。现在,该项目已经发展起来,需要将它构建为EAR,包括JAR属性及其依赖项。 这是否一定意味着我必须引入第二种带EAR封装的POM?是否可以从单个Maven项目构建JAR + EAR?其背后的原因是,我真的不希望从根本上重组我的存储库结构。 如果不可能,我想我需要以某种方式重组项目结构以利用Maven模块。在这种情况下,您会建议什么样的(子)
问题内容: 我正在考虑将我用Eclipse编写的Web服务部署到EAR文件。我可以将其导出为WAR,并很好地将其部署在Tomcat上,但是最终产品将不在Tomcat上,也不会是WAR文件。我需要将Websphere用作服务器,我可以访问它并可以部署有效的EAR文件……如果我要部署EAR文件。 简而言之,我如何从Eclipse中的Dynamic Web Project导出EAR文件? 问题答案: 您
我在maven项目中得到了以下错误。我在看视频教程。并且maven文件相当简单。 下面是maven文件。 在stackoverflow的另一篇文章中有一篇关于文件格式的文章,因此我也将文件格式更改为utf-8。 任何解决这个问题的建议都会很有帮助。谢谢!
詹金斯的新成员。 目前,我们使用maven和Subversion作为SCM进行手动构建: > 在本地工作副本文件夹中,POM文件有1.1.1-SNAPSHOT,issue mvn release:clean release:prepare-p all modules 这将创建一个标记https://avn/path/to/tag/xxx-1.1.1,而我的本地工作副本仍在1.1.2-SNAPSHO
问题内容: 可以说我的模块结构如下 现在要给客户端发消息,我需要构建所有模块,因为我正在加载上述所有模块的罐子,以最终发动客户端 并且所有jar都组装在模块部署中。 我的问题是,例如,如果我更改了服务中的任何内容,那么从运行构建时是否有办法可以识别出它只能构建,因此可以构建并将其部署到deploy文件夹中? 问题答案: 如果您正在使用SVN和* nix,请从根模块