gpt4 book ai didi

maven - 原型(prototype)应始终使用最新版本的依赖项

转载 作者:行者123 更新时间:2023-12-01 19:45:58 25 4
gpt4 key购买 nike

我制作了一个原型(prototype),它对我的​​一个项目具有托管依赖关系。每当使用我的原型(prototype)创建新项目时,是否有可能告诉原型(prototype)始终使用该依赖项的最新发行版本?使用 RELEASE 对我来说不起作用,因为我不想每次构建项目时都更改版本。

    <?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>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<packaging>jar</packaging>

<dependencies>
<dependency>
<groupId>com.mycompany.someproject</groupId>
<artifactId>someDependency</artifactId>
</dependency>
</dependencies>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.mycompany.myproject</groupId>
<artifactId>myArtifact</artifactId>

<version>LATEST</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>

我读到this问题,但使用 maven-versions-plugin 的建议解决方案似乎不适合,原因有两个。首先,我想在创建项目时更改版本,其次我不想更改所有依赖项的版本,而只想更改一个。

编辑:上面是来自 archetype-resources 的 pom.xml(已更新),下面是来 self 的 archetype-project 本身的 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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.mycompany.maven.archetype.be</groupId>
<artifactId>maven-archetype-be-_moduleList</artifactId>
<version>1.3-SNAPSHOT</version>
<relativePath>../maven-archetype-be</relativePath>
</parent>
<artifactId>archetype-be-api</artifactId>
<packaging>maven-archetype</packaging>
<dependencies />
<name>archetype-be-api</name>
</project>

编辑2:RELEASELATEST 似乎在托管依赖项中根本不起作用。任何人都可以确认或禁用该声明吗?

最佳答案

你可以放

    <dependency>
<groupId>com.mycompany.myproject</groupId>
<artifactId>my-artifact</artifactId>
<version>LATEST</version>
<type>pom</type>
<scope>import</scope>
</dependency>

LATEST 将解析最新的可用版本,并在构建时传递 -U

或者如果您不想每次都指定-U,则可以在~/.m2中配置您的settings.xml喜欢

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
...
<profiles>
<profile>
...
<repositories>
<repository>
<id>codehausSnapshots</id>
<name>Codehaus Snapshots</name>
<releases>
<enabled>false</enabled>
<updatePolicy>always</updatePolicy> // <-- this will update each release artifact from this repository each time
<checksumPolicy>warn</checksumPolicy>
</releases>
<url>http://snapshots.maven.codehaus.org/maven2</url>
<layout>default</layout>
</repository>
</repositories>
<pluginRepositories>
...
</pluginRepositories>
...
</profile>
</profiles>
...
</settings>

例如,当您运行 mvn 从原型(prototype)项目生成项目时,您仍然可以指定 LATEST

mvn archetype:generate 
-DarchetypeGroupId=you_archetype_group_id
-DarchetypeArtifactId=sample-spring-mvc-archetype
-DarchetypeVersion=LATEST -DgroupId=new.project.id
-DartifactId=sample
-DarchetypeRepository=path_to_maven_repo_with_archetype_jar

关于maven - 原型(prototype)应始终使用最新版本的依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24700158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com