我正在使用seam来开发我的应用程序并在weblogic 10.1MP上运行它 使用maven2构建应用程序,但未在任何存储库中找到jboss-seam-wls-compatible.jar文件。 在maven中我如何将这个jar从我的本地文件夹复制到target / WEB-INF / lib文件夹。
答案 0 :(得分:4)
在Maven中执行此操作的正确方法是将其安装到存储库(远程或本地)中。
但是,有些情况下本地存储库不太可取。例如,您在许多计算机上运行Maven,而您不想手动安装它。
在这些极少数情况下,我只是使用检查JAR的反模式进行版本控制。我甚至懒得将它安装到本地存储库,因为它添加了另一个步骤并制作了另一个JAR副本。我只是像这样直接使用JAR,
<dependency>
<groupId>local</groupId>
<artifactId>homeless-jar</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/homeless.jar
</systemPath>
</dependency>
编辑:$ {basedir}由Maven定义。它是您的pom.xml所在的Maven项目的基本目录。我的例子不清楚。见这个,
<dependency>
<groupId>any-id</groupId>
<artifactId>any-name</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/lib/homeless.jar
</systemPath>
</dependency>
答案 1 :(得分:3)
您可以使用安装插件install-file goal将jar安装到本地存储库,然后您可以正常声明对工件的依赖关系,并且它会被war插件自动打包到您的战争中。
如果你有一个远程存储库,你可以使用deploy插件的deploy-file goal将jar部署到该存储库,然后你的队友也可以访问jar。
有关信息,有一个Jira可以在中央提供此工件。
根据您的评论进行更新。我建议不要这样做,因为这不是一个好习惯,但如果你必须在你的项目的源结构中托管jar,你可以把它放在说src / main / lib下并使用antrun插件将它复制到WEB-INF / lib中。
例如:
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<tasks>
<copy todir="${project.build.directory}/WEB-INF/lib">
<fileset dir="src/main/lib"/>
</copy>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>