我创建了一个新的Spring web应用程序,我非常想使用Maven来处理构建/依赖关系。我的问题是,这个项目依赖于一些现有的本地项目,并且目前还不能对它们进行精细化。有没有可能在不精通这些项目的情况下依赖它们?
发布于 2012-08-29 00:13:29
不,你不应该试着那样做。Maven的主要目标是拥有一个标准化的构建。这就是Maven如此易于使用的原因:异常并不是常态。这就是为什么Maven要求所有依赖项都采用典型的Maven格式(POM + jar)。
当你说"Maven化它们目前不是一个选项“时,你基本上是说”Maven当前不是一个选项“。根据我的经验,将现有项目转换到Maven只需要几分钟……除非这个项目使用一个混乱的,不可靠的构建过程,在这种情况下,你真的应该尽快将它转换到Maven,以免浪费更多的宝贵时间。:-)
如果其他方法都失败了,可以使用构建服务器从依赖项目中生成JAR文件,并将它们部署到公司范围的存储库服务器或仅部署到您的本地计算机。
发布于 2012-08-29 00:05:23
我认为最简单的方法是将本地依赖项部署到本地存储库,以便maven可以将其用作常规依赖项。
要将本地jar文件部署到本地存储库中,请使用以下命令行:
mvn install:install-file -Dfile=<MY-FILE> -DgroupId=MY-GROUP-ID -DartifactId=MY-ARGIFACT -Dversion=MY-VERSION -Dpackaging=jar如果您的公司中有像Artifactory这样的共享存储库,那么您可以在那里部署jar。否则,每个开发人员都必须部署到自己的本地存储库中。好消息是它只能做一次。
编辑。
下面是一种在pom.xml中定义项目到项目依赖关系的方法
<dependency>
<groupId>com.mycompany.util</groupId>
<artifactId>util</artifactId>
<version>${com.mycompany.version}</version>
</dependency>就这样。Util只是我工作空间中的另一个项目。
发布于 2020-02-17 08:02:01
这个答案有点晚,但以防有人需要它,我使用maven的Build Helper Plugin找到了解决方案,也就是说,如果您不想将非maven项目部署为jar:
因此,基本上只需在<sources>标记中添加非maven项目的源目录:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>add-source</id>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>C:\Users\user123\eclipse-workspace\my_non_maven_project\src</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>现在,如果这个非maven项目有它自己的依赖项,那么您还需要将它们添加到maven项目的<dependencies>部分。
https://stackoverflow.com/questions/12163153
复制相似问题