명령 줄에 Maven 리포지토리를 추가 할 수 있습니까?
~ / .m2 / settings.xml에서 종속성을 가져 오기 위해 Maven 저장소를 추가 할 수 있다는 것을 알고 있습니다. 그러나 다음과 같은 명령 줄을 사용하여 저장소를 추가 할 수 있습니다.
mvn install -Dmaven.repository=http://example.com/maven2
이 작업을 수행하려는 이유는 maven을 호출하는 데 사용하는 명령 줄 옵션을 완전히 제어 할 수있는 지속적인 통합 도구를 사용하고 있지만 통합 도구를 실행하는 사용자를 위해 settings.xml을 관리하는 것이 약간 어렵 기 때문입니다. 번거 로움.
이 작업을 수행 할 수 있지만 다른 사람들이 말한 것처럼 POM에서 수행하는 것이 더 낫습니다.
명령 줄에서 로컬 저장소에 대한 속성과 원격 저장소에 대한 다른 저장소를 지정할 수 있습니다. 원격 저장소에는 모든 기본 설정이 있습니다.
아래 예제는 두 개의 원격 저장소와 사용자 지정 로컬 저장소를 지정합니다.
mvn package -Dmaven.repo.remote=http://www.ibiblio.org/maven/,http://myrepo
-Dmaven.repo.local="c:\test\repo"
Maven't Project Object Model (POM)의 목표 중 하나는 아티팩트를 안정적으로 재현하는 데 필요한 모든 정보를 캡처하는 것이므로 아티팩트 생성에 영향을주는 설정을 전달하지 않는 것이 좋습니다.
목표를 달성하려면 각 프로젝트와 함께 사용자 수준 settings.xml 파일을 확인하고 -s (또는 --settings) 옵션을 사용하여 빌드에 전달할 수 있습니다.
명령 줄을 사용하여 할 수 있는지 잘 모르겠습니다. 반면에 다음 예제와 같이 pom.xml 에 리포지토리를 추가 할 수 있습니다 . 이 방법을 사용하면 ~ / .m2 / settings.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">
...
<repositories>
<repository>
<id>MavenCentral</id>
<name>Maven repository</name>
<url>http://repo1.maven.org/maven2</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
...
<repository>
<id>Codehaus Snapshots</id>
<url>http://snapshots.repository.codehaus.org/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
...
<pluginRepositories>
<pluginRepository>
<id>apache.snapshots</id>
<name>Apache Snapshot Repository</name>
<url>
http://people.apache.org/repo/m2-snapshot-repository
</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
<pluginRepository>
<id>Codehaus Snapshots</id>
<url>http://snapshots.repository.codehaus.org/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
...
</project>
@Jorge Ferreira가 이미 저장소 정의를 pom.xml에 넣었다고 말했듯이. 사용 프로필 명령 줄을 통해 사용할 수있는 저장소를 선택 adittionally :
mvn deploy -P MyRepo2
mvn deploy -P MyRepo1
I'll assume here that you're asking this because you occasionally want to add a new 3rd-party repository to your builds. I may be wrong of course... :)
Your best bet in this case is to use a managed proxy such as artifactory or nexus. Then make a one-time change in settings.xml to set this up as a mirror for the world.
Any 3rd party repos that you need to add from that point on can be handled via the proxy.
I haven't really used maven 2 before, our system is still working on maven 1.x because of some issues with maven 2.
However, looking at the documentation for maven 2 it seems that there aren't any specific System properties like that. However, you could probably build one into your poms/settings using the System properties. See System properties part of this http://maven.apache.org/settings.html
So you'd have ${maven.repository} in your settings file and then use the -Dmaven.repository like you do above.
I am unsure as to if this would work, but with some tweaking I am sure you can come up with something.
Create a POM that has the repository settings that you want and then use a parent element in your project POMs to inherit the additional repositories. The use of an "organization" POM has several other benefits when a group of projects belong to one team.
참고URL : https://stackoverflow.com/questions/71030/can-i-add-maven-repositories-in-the-command-line
'developer tip' 카테고리의 다른 글
iOS 용 Unity3d 플러그인 빌드 방법 (0) | 2020.11.28 |
---|---|
node.js에서 비밀번호를 변경하고 로그 아웃하는 동안 JWT를 무효화하는 모범 사례? (0) | 2020.11.28 |
단일 스레드 프로그래밍 모델에서 비동기 프로그래밍은 어떻게 작동합니까? (0) | 2020.11.28 |
JavaScript에서 "continue"문이 잘못된 이유는 무엇입니까? (0) | 2020.11.28 |
.NET 참조 소스의 개체로 캐스팅 (0) | 2020.11.28 |