Maven: Difference between revisions
Jump to navigation
Jump to search
(17 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
<syntaxhighlight lang="xml"> | |||
<profile> | |||
<id>ext</id> | |||
<activation> | |||
<file> | |||
<missing>${basedir}/ext</missing> | |||
</file> | |||
</activation> | |||
</profile> | |||
</syntaxhighlight> | |||
==Distribution== | |||
<syntaxhighlight lang="xml"> | |||
<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> | |||
</syntaxhighlight> | |||
==Security== | |||
<syntaxhighlight lang="bash"> | |||
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 | |||
</syntaxhighlight> | |||
---- | |||
<syntaxhighlight lang="bash"> | |||
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://cdn.chorke.org/nexus/repository/m2-snapshots</altSnapshotDeploymentRepository> | |||
<altReleaseDeploymentRepository>academia.releases::default::https://cdn.chorke.org/nexus/repository/m2-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 | |||
</syntaxhighlight> | |||
==References== | ==References== | ||
{| | |||
| valign="top" | | |||
* [https://stackoverflow.com/questions/41611671/ <code>altDeploymentRepository</code> vs. <code>altReleaseDeploymentRepository</code>] | |||
* [https://stackoverflow.com/questions/3298135 Externalized Maven Distribution Management] | |||
* [http://maven.apache.org/ref/3.3.3/maven-model/maven.html#class_file File specification used to activate the profile] | * [http://maven.apache.org/ref/3.3.3/maven-model/maven.html#class_file File specification used to activate the profile] | ||
* [https://stackoverflow.com/questions/30649044 Activate a Maven Profile if missing a file] | * [https://stackoverflow.com/questions/30649044 Activate a Maven Profile if missing a file] | ||
* [https://maven.apache.org/plugins/maven-deploy-plugin/deploy-mojo.html Maven Deploy Optional Parameters] | |||
* [https://maven.apache.org/guides/mini/guide-encryption.html Maven Encrypt Master Password] | |||
* [[Maven Deploy External JAR]] | |||
* [https://stackoverflow.com/questions/23929235/ Bash Multi-line string] | |||
* [[Nexus:Maven]] | |||
* [[Nexus]] | |||
| valign="top" | | |||
* [https://mvnrepository.com/artifact/com.gkatzioura.maven.cloud/s3-storage-wagon Maven » S3 Storage Wagon] | |||
* [[Maven Checkstyle Plugin]] | |||
* [[Maven Release Plugin]] | |||
| valign="top" | | |||
|- | |||
| colspan="3" | | |||
---- | |||
|- | |||
| valign="top" | | |||
* [[CocoaPods]] | |||
* [[Conan]] | |||
* [[Bazel]] | |||
* [[NPM]] | |||
* [[Ant]] | |||
* [[Ivy]] | |||
| valign="top" | | |||
| valign="top" | | |||
|} |
Latest revision as of 20:36, 4 November 2024
<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://cdn.chorke.org/nexus/repository/m2-snapshots</altSnapshotDeploymentRepository>
<altReleaseDeploymentRepository>academia.releases::default::https://cdn.chorke.org/nexus/repository/m2-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