2014-07-11 5 views
6

내 프로젝트 중 하나에 관리되는 종속성이있는 아키타 입을 만들었습니다. 내 아키타 입을 사용하여 새 프로젝트를 만들 때마다 아키타 입을 사용하여 해당 종속성의 최신 릴리스 버전을 항상 사용하도록 할 수 있습니까? RELEASE을 사용하면 프로젝트가 빌드 될 때마다 버전을 변경하고 싶지 않기 때문에 저에게 도움이되지 않습니다. Archetype은 항상 최신 버전의 종속성을 사용해야합니다.

<?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 질문을 읽을 수 있지만 받는다는-버전 - 플러그인 제안 된 솔루션은 두 가지 이유에 적합하지 않는 것 같다. 먼저 프로젝트를 만들 때 버전을 변경하고 모든 종속성의 버전을 변경하지 않고 두 번째 버전 만 변경하려고합니다.

위의 편집 :은 archetype-resources (updated)의 pom.xml이며 아래는 내 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> 

는 EDIT2 : RELEASELATEST 관리의 종속 전혀 작동하지 않는 것 같다. 누구나 그 진술을 확인하거나 해제 할 수 있습니까?

+0

를 들어, 당신은 여전히 ​​최신 지정할 수 있습니다 원형 프로젝트에서 프로젝트를 생성하는 당신이 알지 못했을 수도있는 변화들. 그러나 여전히 그것을하고 싶다면이 링크를 보면서 질문을 잘 설명 할 수 있습니다. http://stackoverflow.com/questions/30571/how-do-i-tell-maven-to-use-the-latest-version-of-apendency – SerhatCan

답변

1

당신은

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

LATEST이 가능한 최신 버전을 해결하고

을 구축하거나 -U 각 시간을 지정하지 않는 경우에 당신이 당신의 settings.xml~/.m2에서 구성 할 수 있습니다 때 -U를 전달합니다 넣을 수 있습니다 예 :

<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은 몇 가지 심각한 문제로 인해되었다 수 있기 때문에 당신이 그것을 재고 할 수 있습니다, 예를

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 
+0

답변 해 주셔서 감사합니다.하지만 그건 내가 원하는 것이 아닙니다. 할 것. 프로젝트가 생성 될 때마다 아키타 입을 사용하여 ** 생성 된 ** 최신 버전을 확인하고 싶습니다. – Kayz

+0

archetype rpoject –

+0

의 pom.xml을 업데이트하십시오. 업데이트 된 질문을 참조하십시오. – Kayz

관련 문제