Maven을 사용하여 빌드하고 릴리스 한 아티팩트가 있습니다. 인공물의 원래 pom.xml은 일반적인 프로젝트 정보 (artifactId, 이름 등)와 종속성을 포함합니다. 괜찮아. 그러나 pom.xml에는 SCM URL, 개발자 이름 또는 학부모와 같은 개인 정보도 포함됩니다.출시시 Anonymize pom.xml
Maven에 pom.xml을 생성하도록 지시 할 수있는 방법이 있습니까? 예를 들어, 유물은 의존성과 같은 기술적 인 정보를 파괴하지 않으면 서 공개 될 수 있습니다.
SCM URL도 개발자 목록도 아니고 부모 -pom (DepMgmt 정의 및 기타 메타 데이터에만 사용됨)도 인공물 사용자와 관련이 없으므로 해제 된 pom.xml에서 제거 될 수 있습니다.
Archiva와 같은 저장소 관리자와 artefact의 jar 파일 내에 패키지 된 pom.xml은 해당 정보를 포함합니다. Maven이 모든 것을 복사하는 것 같습니다.
은 요약하면 :내가 가진 :
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>my-artifact</artifactId>
<scm>
<connection>scm:svn:http://buildmachine/org.example/my-artifact/trunk</connection>
<developerConnection>scm:svn:http://buildmachine/org.example/my-artifact/trunk</developerConnection>
<url>http://buildmachine/org.example/my-artifact/trunk</url>
</scm>
<dependencies>
<dependency>
...
</dependency>
</dependencies>
내가 원하는 :
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>my-artifact</artifactId>
<dependencies>
<dependency>
...
</dependency>
</dependencies>
릴리스에 따라 Maven Release Plugin을 사용하고 싶습니까? –
예, maven-release-plugin입니다. 제거 : 잘, 그들은 개발 서버의 호스트 이름과 같은 개발 내부 정보를 포함합니다. 고객은 내 buildserver의 호스트 이름을 알 필요가 없습니다. OSS 프로젝트에서는 이것이 중요하지 않을 수 있지만 기업 환경에서는 이것이 "보안"문제입니다. (예 ... 알고 있습니다 ...) – mhaller
또 다른 질문 : 고객이 유물 종속품으로 유물을 사용합니까 (이 경우 OMG, 그들은 archiva의 호스트 이름을 알고 있습니다 : D)? –