我有一个Spring roo项目(基本上是一个maven项目).我想将dropbox sdk添加到项目中,问题是它不在maven中.我添加了以下文件
<dependency>
<groupId>com.dropbox</groupId>
<artifactId>dropbox-sdk</artifactId>
<version>1.3.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/libs/dropbox-java-sdk-1.3.1.jar</systemPath>
</dependency>
Run Code Online (Sandbox Code Playgroud)
它解决了编译错误,但是当我运行项目时,在Spring Tool Suite中,jar文件没有添加到war lib文件夹中.如何让maven将我的外部jar文件添加到war lib文件夹中?
我不想在maven中安装jar,因为我必须在使用该项目的所有机器中安装它
Cha*_* Wu 14
我终于找到了一个简洁的解决方案,实现起来要容易得多.您在java项目中添加了一个项目内存储库,并在pom中链接到它.
您可以在maven中添加项目内存储库,如下所示:
<repository>
<id>in-project</id>
<name>In Project Repo</name>
<url>file://${project.basedir}/libs</url>
</repository>
Run Code Online (Sandbox Code Playgroud)
然后在项目的根文件夹中创建一个类似于此的文件夹结构
/groupId/artifactId/version/artifactId-version.jar
Run Code Online (Sandbox Code Playgroud)
并像往常一样添加依赖项.
这种方法所需的代码和工作量最少,如果该库可以添加到maven存储库中,则可以随时删除项目内存储库.
有一个更简单的解决方案,即在插件中设置 webResource。通过解决方案,您可以将本地磁盘的任何文件添加到战争中!一个样本如下,
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>api</warName>
<webResources>
<resource>
<directory>libs/</directory>
<targetPath>WEB-INF/lib</targetPath>
<includes>
<include>**/*.jar</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我建议在 Maven 存储库服务器(例如 Nexus 或 Artifactory)中创建一个“第三方”存储库,并将 jar 上传到那里。尽管这意味着将 jar 放入 Maven,但至少通过存储库服务器,任何将要构建应用程序的人都可以使用它。
| 归档时间: |
|
| 查看次数: |
14990 次 |
| 最近记录: |