Maven: Difference between revisions
Jump to navigation
Jump to search
Line 54: | Line 54: | ||
<servers> | <servers> | ||
<server> | <server> | ||
<id> | <id>academia.releases</id> | ||
<username>${M2_NEXUS_USER}</username> | <username>${M2_NEXUS_USER}</username> | ||
<password>${M2_NEXUS_HASH}</password> | <password>${M2_NEXUS_HASH}</password> | ||
</server> | </server> | ||
<server> | <server> | ||
<id> | <id>academia.snapshots</id> | ||
<username>${M2_NEXUS_USER}</username> | <username>${M2_NEXUS_USER}</username> | ||
<password>${M2_NEXUS_HASH}</password> | <password>${M2_NEXUS_HASH}</password> | ||
Line 67: | Line 67: | ||
<mirrors> | <mirrors> | ||
<mirror> | <mirror> | ||
<id> | <id>academia</id> | ||
<mirrorOf>*</mirrorOf> | <mirrorOf>*</mirrorOf> | ||
<url>https://cdn.chorke.org/nexus/repository/m2/</url> | <url>https://cdn.chorke.org/nexus/repository/m2/</url> | ||
Line 75: | Line 75: | ||
<profiles> | <profiles> | ||
<profile> | <profile> | ||
<id> | <id>academia</id> | ||
<properties> | |||
<altSnapshotDeploymentRepository>academia.snapshots::default::https://nex.chorke.org/repository/maven/snapshots</altSnapshotDeploymentRepository> | |||
<altReleaseDeploymentRepository>academia.releases::default::https://nex.chorke.org/repository/maven/releases</altReleaseDeploymentRepository> | |||
</properties> | |||
<repositories> | <repositories> | ||
<repository> | <repository> | ||
Line 96: | Line 100: | ||
<activeProfiles> | <activeProfiles> | ||
<activeProfile> | <activeProfile>academia</activeProfile> | ||
</activeProfiles> | </activeProfiles> | ||
</settings> | </settings> |
Revision as of 02:17, 16 October 2023
<profile>
<id>ext</id>
<activation>
<file>
<missing>${basedir}/ext</missing>
</file>
</activation>
</profile>
Distribution
<settings>
[...]
<profiles>
<profile>
<id>nex</id>
<properties>
<altSnapshotDeploymentRepository>academia.snapshots::default::https://nex.chorke.org/repository/maven/snapshots</altSnapshotDeploymentRepository>
<altReleaseDeploymentRepository>academia.releases::default::https://nex.chorke.org/repository/maven/releases</altReleaseDeploymentRepository>
</properties>
</profile>
</profiles>
</settings>
Security
M2_MASTER_PASS='<master.password>';\
M2_SECURITY_XML="${HOME}/.m2/settings-security.xml";\
printf -v M2_MASTER_HASH '%s' $(mvn --encrypt-master-password ${M2_MASTER_PASS});\
if [ ! -f ${M2_SECURITY_XML} ]||[ ! -s ${M2_SECURITY_XML} ];then\
cat << EOF | tee ${M2_SECURITY_XML} >/dev/null
<?xml version="1.0" encoding="UTF-8"?>
<settingsSecurity>
<master>${M2_MASTER_HASH}</master>
</settingsSecurity>
EOF
fi
M2_NEXUS_USER='<nexus.username>';\
M2_NEXUS_PASS='<nexus.password>';\
M2_SETTINGS_XML="${HOME}/.m2/settings.xml";\
printf -v M2_NEXUS_HASH '%s' $(mvn --encrypt-password ${M2_NEXUS_PASS});\
if [ ! -f ${M2_SETTINGS_XML} ]||[ ! -s ${M2_SETTINGS_XML} ];then\
cat << EOF | tee ${M2_SETTINGS_XML} >/dev/null
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<servers>
<server>
<id>academia.releases</id>
<username>${M2_NEXUS_USER}</username>
<password>${M2_NEXUS_HASH}</password>
</server>
<server>
<id>academia.snapshots</id>
<username>${M2_NEXUS_USER}</username>
<password>${M2_NEXUS_HASH}</password>
</server>
</servers>
<mirrors>
<mirror>
<id>academia</id>
<mirrorOf>*</mirrorOf>
<url>https://cdn.chorke.org/nexus/repository/m2/</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>academia</id>
<properties>
<altSnapshotDeploymentRepository>academia.snapshots::default::https://nex.chorke.org/repository/maven/snapshots</altSnapshotDeploymentRepository>
<altReleaseDeploymentRepository>academia.releases::default::https://nex.chorke.org/repository/maven/releases</altReleaseDeploymentRepository>
</properties>
<repositories>
<repository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>http://central</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>academia</activeProfile>
</activeProfiles>
</settings>
EOF
fi
References
altDeploymentRepository
vs.altReleaseDeploymentRepository
- Externalized Maven Distribution Management
- File specification used to activate the profile
- Activate a Maven Profile if missing a file
- Maven Deploy Optional Parameters
- Maven Encrypt Master Password
- Bash Multi-line string
- Nexus:Maven
- Nexus
- Bazel