这可能更像是一个过程,然后是技术解决方案。我目前正在开发一个分为库和实现应用程序的项目。在构建应用程序时,这样做是调试库的一种非常有效的方法。我想在两个项目中使用Maven,但我不想为每个小的更改进行构建和部署。有没有办法让Maven几乎将项目作为存储库引用?
答案 0 :(得分:2)
你是对的,这是一个过程问题。我将您的问题解释为希望避免将库的特定版本声明为实现中的依赖项。目的是独立更新任一组件,特别是您希望能够更新库而无需重建实现。
如果进行更改,您显然需要重建和重新部署某些内容。但是,我可以看到两个应该解决您问题的步骤。我要打电话给你的组件'lib'和'app'。
希望这对你有意义,我正确地解释了你的问题。
答案 1 :(得分:1)
你可以有一个“超级pom”,它有两个子项目。一个项目是您的库,另一个项目是您的应用程序。两者都可以单独开发。
您的应用程序将依赖于库中的项目。
例如:
“super-pom”:将此pom.xml存储在较高的目录中。你会有这样的东西:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>your.group</groupId>
<artifactId>project</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>caap</name>
<modules>
<module>project-library</module>
<module>project-app</module>
</modules>
</project>
然后你的库pom.xml会有这样的东西:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>project</artifactId>
<groupId>your.group</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>=your.group</groupId>
<artifactId>project-library</artifactId>
<version>1.0-SNAPSHOT</version>
<name>project-library</name>
</project>
你的应用程序会有这样的东西:
<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>project</artifactId>
<groupId>your.group</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>=your.group</groupId>
<artifactId>project-application</artifactId>
<version>1.0-SNAPSHOT</version>
<name>project-application</name>
<dependencies>
<dependency>
<artifactId>project-library</artifactId>
<groupId>your.group</groupId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>
</project>
答案 2 :(得分:0)
mvn install
看起来像我想要的。只需从项目运行它就会将其添加到本地仓库,其他应用程序可以将其提取。