build: scope private repository to legacy xinda

This commit is contained in:
lingniu
2026-07-01 13:25:21 +08:00
parent 85013a0ebe
commit 97ea77ed27
2 changed files with 55 additions and 19 deletions

View File

@@ -122,6 +122,16 @@ class MavenModuleProfileTest {
"modules/apps/xinda-push-app"); "modules/apps/xinda-push-app");
} }
@Test
void privateLingniuRepositoryIsScopedToLegacyXindaProfile() throws Exception {
Document pom = rootPom();
assertThat(repositoryIds(pom.getDocumentElement()))
.doesNotContain("lingniu-nexus");
assertThat(profileRepositoryIds(pom, "legacy-xinda"))
.containsExactly("lingniu-nexus");
}
@Test @Test
void optionalModuleVersionsAreScopedToTheirProfiles() throws Exception { void optionalModuleVersionsAreScopedToTheirProfiles() throws Exception {
Document pom = rootPom(); Document pom = rootPom();
@@ -423,6 +433,33 @@ class MavenModuleProfileTest {
return dependencyManagementArtifacts(profile); return dependencyManagementArtifacts(profile);
} }
private static List<String> profileRepositoryIds(Document pom, String profileId) {
Element profile = profile(pom, profileId);
if (profile == null) {
return List.of();
}
return repositoryIds(profile);
}
private static List<String> repositoryIds(Element owner) {
Element repositories = firstDirectChild(owner, "repositories");
if (repositories == null) {
return List.of();
}
List<String> ids = new ArrayList<>();
NodeList children = repositories.getChildNodes();
for (int i = 0; i < children.getLength(); i++) {
if (!(children.item(i) instanceof Element repository) || !"repository".equals(repository.getTagName())) {
continue;
}
Element id = firstDirectChild(repository, "id");
if (id != null) {
ids.add(id.getTextContent().trim());
}
}
return List.copyOf(ids);
}
private static Element profile(Document pom, String profileId) { private static Element profile(Document pom, String profileId) {
Element profiles = firstDirectChild(pom.getDocumentElement(), "profiles"); Element profiles = firstDirectChild(pom.getDocumentElement(), "profiles");
if (profiles == null) { if (profiles == null) {

37
pom.xml
View File

@@ -112,6 +112,24 @@
<module>modules/inbound/inbound-xinda-push</module> <module>modules/inbound/inbound-xinda-push</module>
<module>modules/apps/xinda-push-app</module> <module>modules/apps/xinda-push-app</module>
</modules> </modules>
<!--
羚牛私仓:托管 legacy Xinda 依赖 org.lingniu:gps-push-client:1.0。
访问凭证配置在 ~/.m2/settings.xml 的 <server><id>lingniu-nexus</id></server> 中,
pom 不保存明文密码。默认生产 reactor 不需要访问该私仓。
-->
<repositories>
<repository>
<id>lingniu-nexus</id>
<name>Lingniu Private Maven Repository</name>
<url>https://nexus.lnh2e.com/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<dependencyManagement> <dependencyManagement>
<dependencies> <dependencies>
<dependency> <dependency>
@@ -370,25 +388,6 @@
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<!--
羚牛私仓:托管 org.lingniu:gps-push-client:1.0 等内部 artifact。
访问凭证配置在 ~/.m2/settings.xml 的 <server><id>lingniu-nexus</id></server> 中,
pom 不保存明文密码。
-->
<repositories>
<repository>
<id>lingniu-nexus</id>
<name>Lingniu Private Maven Repository</name>
<url>https://nexus.lnh2e.com/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<build> <build>
<pluginManagement> <pluginManagement>
<plugins> <plugins>