我创建了一个新的Spring Web应用程序,我非常希望使用Maven来处理构建/依赖关系。我的问题是该项目依赖于一些现有的本地项目,当前无法将它们转化为Maven项目。是否有可能在不将它们转化为Maven项目的情况下依赖于这些项目?
我创建了一个新的Spring Web应用程序,我非常希望使用Maven来处理构建/依赖关系。我的问题是该项目依赖于一些现有的本地项目,当前无法将它们转化为Maven项目。是否有可能在不将它们转化为Maven项目的情况下依赖于这些项目?
不,而且你不应该尝试。Maven的主要目标是实现标准化的构建。这就是使Maven如此易于使用的原因:异常不是常态。这就是为什么Maven要求所有的依赖都采用典型的Maven格式(POM + jar)。
当你说"将它们转化为maven不是当前的选择"时,基本上就是说"maven目前不可用"。根据我的经验,将现有项目转换为Maven仅需几分钟...除非该项目使用混乱、不可靠的构建过程,否则你真的应该尽快将其转换为Maven来避免浪费更多宝贵的时间。:-)
如果其他一切都失败了,可以使用构建服务器从依赖项目中生成JAR文件,并将其部署到公司范围的存储库服务器或本地机器上。
这个答案可能有点晚,但如果有人还需要的话,我找到了使用Maven的Build Helper插件的解决方案,前提是你不想将非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>
部分中。
我认为最简单的方法是将您的本地依赖部署到本地仓库,这样Maven可以将其作为常规依赖使用。
要将本地的
jar
文件部署到本地仓库,请使用以下命令行:mvn install:install-file -Dfile=<我的文件> -DgroupId=我的组ID -DartifactId=我的Artifact -Dversion=我的版本 -Dpackaging=jar
如果您的公司有共享仓库,例如Artifactory,您可以在那里部署jar。否则,每个开发人员都必须将其部署到自己的本地仓库。好消息是这只需要做一次。
编辑。
以下是在
pom.xml
中定义项目之间依赖关系的方法<dependency> <groupId>com.mycompany.util</groupId> <artifactId>util</artifactId> <version>${com.mycompany.version}</version> </dependency>
就是这样。Util只是我的工作空间中的另一个项目。