documentation에 따르면, Maven 릴리스는 프로젝트 수행 목표를 체크 아웃 한 다음 새로운 Maven 인스턴스를 생성하여 빌드합니다. 어떤 이유로 포크 된 인스턴스는 사용자의 settings.xml
을 무시한 것으로 보이는데, 필자의 경우이 파일에는 부모 pom의 저장소 URL을 작성하는 데 사용되는 속성 정의가 있으므로 오류가 발생합니다. 항상 활성화 된 "넥서스"프로필의 속성의Maven 릴리스에서 분기 된 프로세스 : perform plugins가 사용자의 settings.xml을 무시합니까?
사용자 Settings.XML의
정의. 정의 된 재산의<profiles> <profile> <id>nexus</id> <properties> <dist.url>http://host.com/nexus/content/repositories</dist.url> </properties> </profile> </profiles> <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
부모의 의 pom.xml
사용 저장소의 URL을 구성합니다. (성공적으로 체크 아웃 한 나타냅니다 후, 구축, 테스트 프로젝트를 패키지)mvn release:perform
출력 :
<distributionManagement> <repository> <id>nexus</id> <url>${dist.url}/releases</url> </repository> </distributionManagement>
명령이 실행
[INFO] Uploading: ${dist.url}/releases/com/acme/access/my-project/1.0/my-project-1.0.jar [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] BUILD FAILURE [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [INFO] Total time: 3.659s [INFO] [INFO] Finished at: Wed Aug 01 14:40:23 EDT 2012 [INFO] [INFO] Final Memory: 21M/307M [INFO] [INFO] ------------------------------------------------------------------------ [INFO] [WARNING] The requested profile "nexus" could not be activated because it does not exist. [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project my-project: Failed to deploy artifacts: Could not transfer artifact com.acme.access:my-project:jar:1.0 from/to nexus (${dist.url}/releases): Error transferring file: no protocol: ${dist.url}/releases/com/acme/access/my-project/1.0/my-project-1.0.jar -> [Help 1]
공지 방법 fork 된 Maven 인스턴스는 $ {dist.url}에 업로드를 시도하고 있는데 이는 setti에 정의 된 속성 ngs.xml을 읽지 못했습니다. 또한 경고 메시지는 "nexus"프로파일을 찾을 수 없다는 것을 알려줍니다. 주요 Maven 인스턴스가 프로필 정보를 fork 된 인스턴스로 전달하여 찾았 으리라 생각했지만 사용자의 settings.xml을 무시했거나 찾지 못해 프로필을 찾을 수 없었습니다.
나는이 수동으로 플러그인의 arguments
인수로 「랩」Maven의 명령 줄 -s
인수의 사용을 통해 settings.xml
파일의 위치를 지정하는 것입니다 회피 발견하는 유일한 방법,
mvn release:perform -Darguments="-s C:\Users\theuser\.m2\settings.xml"
에서와 같이 플러그인이 예상대로 작동하고 있습니까? 위에서 한 것처럼 파일의 위치를 지정하지 않고도 사용자의 settings.xml
안에 속성 정의를 유지할 수 있습니까?
더 자세한 정보는 :
문제는 일을 일으키는 글로벌
settings.xml
에 프로필 정보를 복사로 플러그인이 사용자의settings.xml
을 찾지 못하는 특별히 것으로 보인다.help:active-profiles
을 실행하면 프로필이 활성 상태임을 나타 내기 때문에 사용자의settings.xml
의 이름이 제대로 지정되었거나 생성되었습니다. 수동으로 빌드하고mvn clean deploy
으로 배포하면 올바르게 작동합니다 (예 : 저장소 URL이 올바르게 계산되어 이슈가 업로드 됨).
내 경우에는 비슷한 유형의 문제라고 생각합니다 .http : //stackoverflow.com/questions/18636196/maven-issue-the-goal-you-specified-requires-a-project-to-execute-bhere-there -is –