Support building against local nexus repos 41/65941/9
authorGary Wu <gary.i.wu@huawei.com>
Tue, 11 Sep 2018 21:28:49 +0000 (14:28 -0700)
committerGary Wu <gary.i.wu@huawei.com>
Thu, 13 Sep 2018 14:40:18 +0000 (14:40 +0000)
Refactor oparent pom to support running builds against local nexus
repos without having to modify oparent source code.

Change-Id: Ic4bd87a6c140ea0d5600fa0cf9aaa37543afcd77
Issue-ID: INT-652
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
.gitignore
pom.xml
settings.xml

index 2ef78d4..32edeae 100644 (file)
@@ -3,4 +3,4 @@ target
 .project
 .settings
 .classpath
-
+cia/
diff --git a/pom.xml b/pom.xml
index f1ce155..09d5edc 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Copyright (c) 2016-2017 Huawei Technologies Co., Ltd.
+   Copyright (c) 2016-2018 Huawei Technologies Co., Ltd.
    Modifications copyright (C) 2017 AT&T Intellectual Property
 
    Licensed under the Apache License, Version 2.0 (the "License");
     <maven.compiler.target>1.8</maven.compiler.target>
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-    <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
     <!-- sitePath may be overridden in the inheriting POM if desired -->
     <sitePath>/content/sites/site/${project.groupId}/${project.artifactId}/${project.version}</sitePath>
-    <!-- properties for Nexus raw repo -->
+
+    <!--
+        The following properties should be defined in your own ~/.m2/settings.xml based on your own build infastructure setup.
+        See the settings.xml in this directory for default settings based on the Linux Foundation ONAP infrastructure.
+
+    <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
     <onap.nexus.rawrepo.baseurl.upload>https://nexus.onap.org/content/sites/raw</onap.nexus.rawrepo.baseurl.upload>
-    <onap.nexus.rawrepo.baseurl.download>
-      https://nexus.onap.org/service/local/repositories/raw/content
-    </onap.nexus.rawrepo.baseurl.download>
+    <onap.nexus.rawrepo.baseurl.download>https://nexus.onap.org/service/local/repositories/raw/content</onap.nexus.rawrepo.baseurl.download>
     <onap.nexus.rawrepo.serverid>ecomp-raw</onap.nexus.rawrepo.serverid>
-    <!-- properties for Nexus Docker registry -->
     <onap.nexus.dockerregistry.daily>nexus3.onap.org:10003</onap.nexus.dockerregistry.daily>
     <onap.nexus.dockerregistry.release>nexus3.onap.org:10002</onap.nexus.dockerregistry.release>
+    <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
+    <docker.push.registry>nexus3.onap.org:10003</docker.push.registry>
+    -->
   </properties>
   <distributionManagement>
     <repository>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-enforcer-plugin</artifactId>
-          <version>3.0.0-M1</version>
+          <version>3.0.0-M2</version>
           <executions>
+            <execution>
+              <id>enforce-property</id>
+              <goals>
+                <goal>enforce</goal>
+              </goals>
+              <configuration>
+                <rules>
+                  <requireProperty>
+                    <property>onap.nexus.url</property>
+                    <message>You must set a onap.nexus.url property in your ~/.m2/settings.xml.  See oparent/settings.xml for an example.</message>
+                  </requireProperty>
+                </rules>
+                <fail>true</fail>
+              </configuration>
+            </execution>
             <execution>
               <id>enforce-no-snapshots</id>
               <goals>
         <artifactId>maven-enforcer-plugin</artifactId>
       </plugin>
     </plugins>
+
   </build>
 </project>
index 71dfb7f..edfbba7 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-   Copyright (c) 2016 Huawei Technologies Co., Ltd. and others.  All rights reserved.
+   Copyright (c) 2016-2018 Huawei Technologies Co., Ltd. and others.  All rights reserved.
 
    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
 
   <profiles>
+    <profile>
+      <id>onap-settings</id>
+      <properties>
+        <onap.nexus.url>https://nexus.onap.org</onap.nexus.url>
+        <onap.nexus.rawrepo.baseurl.upload>https://nexus.onap.org/content/sites/raw</onap.nexus.rawrepo.baseurl.upload>
+        <onap.nexus.rawrepo.baseurl.download>https://nexus.onap.org/service/local/repositories/raw/content</onap.nexus.rawrepo.baseurl.download>
+        <onap.nexus.rawrepo.serverid>ecomp-raw</onap.nexus.rawrepo.serverid>
+
+        <!-- properties for Nexus Docker registry -->
+        <onap.nexus.dockerregistry.daily>nexus3.onap.org:10003</onap.nexus.dockerregistry.daily>
+        <onap.nexus.dockerregistry.release>nexus3.onap.org:10002</onap.nexus.dockerregistry.release>
+        <docker.pull.registry>nexus3.onap.org:10001</docker.pull.registry>
+        <docker.push.registry>nexus3.onap.org:10003</docker.push.registry>
+      </properties>
+    </profile>
     <profile>
       <id>onap-snapshots</id>
       <repositories>
         </pluginRepository>
       </pluginRepositories>
     </profile>
-    <profile>
-      <id>onap-staging</id>
-      <repositories>
-        <repository>
-          <id>onap-staging</id>
-          <name>onap-staging</name>
-          <url>https://nexus.onap.org/content/repositories/staging/</url>
-          <releases>
-            <enabled>true</enabled>
-          </releases>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </repository>
-      </repositories>
-      <pluginRepositories>
-        <pluginRepository>
-          <id>onap-staging</id>
-          <name>onap-staging</name>
-          <url>https://nexus.onap.org/content/repositories/staging/</url>
-          <releases>
-            <enabled>true</enabled>
-          </releases>
-          <snapshots>
-            <enabled>false</enabled>
-          </snapshots>
-        </pluginRepository>
-      </pluginRepositories>
-    </profile>
     <profile>
       <id>onap-releases</id>
       <repositories>
     <profile>
       <id>onap-public</id>
       <repositories>
+        <repository>
+          <id>central</id>
+          <url>http://repo1.maven.org/maven2/</url>
+        </repository>
         <repository>
           <id>onap-public</id>
           <name>onap-public</name>
         </repository>
       </repositories>
       <pluginRepositories>
+        <pluginRepository>
+          <id>central</id>
+          <url>http://repo1.maven.org/maven2/</url>
+        </pluginRepository>
         <pluginRepository>
           <id>onap-public</id>
           <name>onap-public</name>
       </pluginRepositories>
     </profile>
     <profile>
+      <!-- Configure this profile if you have a local nexus cache -->
       <id>local-public</id>
       <repositories>
         <repository>
   </profiles>
 
   <activeProfiles>
+    <activeProfile>onap-settings</activeProfile>
     <activeProfile>onap-snapshots</activeProfile>
-    <!-- <activeProfile>onap-staging</activeProfile> -->
     <activeProfile>onap-releases</activeProfile>
     <activeProfile>onap-public</activeProfile>
     <!-- <activeProfile>local-public</activeProfile> -->