Repository navigation
Expand file tree
/
Copy pathbuild.xml
More file actions
149 lines (127 loc) · 5.48 KB
/
Copy pathbuild.xml
File metadata and controls
149 lines (127 loc) · 5.48 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?xml version="1.0" encoding="UTF-8"?>
<project default="clean" basedir="." name="argon2-extension">
<description>
Build Argon2 Extension
</description>
<!-- set global properties for this build -->
<property name="srcImg" location="source/images"/>
<property name="temp" location="temp"/>
<property name="dist" location="target"/>
<property name="fld" location="source/fld"/>
<target name="init">
<delete dir="${temp}"/>
<mkdir dir="${temp}"/>
<mkdir dir="${dist}/"/>
</target>
<!-- build the org.lucee:argon2-functions jar with Maven (deployed to Maven Central on deploy) -->
<target name="maven-build" depends="init">
<condition property="is.deploy" value="true" else="false">
<equals arg1="${maven.goal}" arg2="deploy"/>
</condition>
<!-- Check if artifact already exists in Maven Central -->
<condition property="artifact.exists">
<and>
<equals arg1="${is.deploy}" arg2="true"/>
<http url="https://repo1.maven.org/maven2/${mvnGroupPath}/${mvnArtifactId}/${bundleversion}/${mvnArtifactId}-${bundleversion}.pom"/>
</and>
</condition>
<!-- Set effective goal based on whether artifact exists -->
<condition property="effective.goal" value="install" else="${maven.goal}">
<equals arg1="${artifact.exists}" arg2="true"/>
</condition>
<echo>goal:${maven.goal}</echo>
<echo>effective.goal:${effective.goal}</echo>
<echo>performRelease:${is.deploy}</echo>
<echo>groupId:${mvnGroupId}</echo>
<echo>artifactId:${mvnArtifactId}</echo>
<echo>bundleversion:${bundleversion}</echo>
<echo>luceeCoreVersion:${luceeCoreVersion}</echo>
<exec dir="source/java" executable="mvn" failonerror="true">
<arg value="clean"/>
<arg value="${effective.goal}"/>
<arg value="-B"/>
<arg value="-e"/>
<arg value="-Drevision=${bundleversion}"/>
<arg value="-Dlucee.version=${luceeCoreVersion}"/>
<arg value="-DperformRelease=${is.deploy}"/>
<arg value="--settings"/>
<arg value="maven-settings.xml"/>
<!-- credentials as system properties, read from the environment by the root pom.xml -->
<arg value="-Dmaven.username=${maven.username}"/>
<arg value="-Dmaven.password=${maven.password}"/>
<arg value="-Dgpg.passphrase=${gpg.passphrase}"/>
</exec>
<!-- copy the runtime dependencies (not the provided Lucee core) in repository layout -->
<exec dir="source/java" executable="mvn" failonerror="true">
<arg value="-B"/>
<arg value="-DoutputDirectory=${temp}/dependency"/>
<arg value="-Dmdep.copyPom=true"/>
<arg value="-Dmdep.useRepositoryLayout=true"/>
<arg value="-DexcludeScope=provided"/>
<arg value="-Drevision=${bundleversion}"/>
<arg value="-Dlucee.version=${luceeCoreVersion}"/>
<arg value="dependency:copy-dependencies"/>
</exec>
<!-- parent POMs are needed to resolve the dependency POMs offline -->
<exec executable="bash" failonerror="true">
<arg value="${basedir}/copy-parent-poms.sh"/>
<arg value="${temp}/dependency"/>
</exec>
</target>
<target name="copy-dependencies" depends="maven-build">
<property name="mvnDir" location="${dist}/extension/maven/${mvnGroupPath}/${mvnArtifactId}/${bundleversion}"/>
<mkdir dir="${mvnDir}"/>
<!-- the jar built by Maven -->
<copy file="source/java/target/${mvnArtifactId}-${bundleversion}.jar" tofile="${mvnDir}/${mvnArtifactId}-${bundleversion}.jar" failonerror="true"/>
<!-- the flattened POM (resolved version, dependency list), the same one that is published -->
<copy file="source/java/.flattened-pom.xml" tofile="${mvnDir}/${mvnArtifactId}-${bundleversion}.pom" failonerror="true"/>
<!-- all runtime dependencies -->
<copy todir="${dist}/extension/maven">
<fileset dir="${temp}/dependency">
<include name="**/*.jar"/>
<include name="**/*.pom"/>
</fileset>
</copy>
</target>
<target name="createManifest" depends="copy-dependencies" description="create MANIFEST.MF file" >
<tstamp>
<format property="NOW" pattern="yyyy-MM-dd HH:mm:ss" />
</tstamp>
<echo file="${dist}/extension/META-INF/MANIFEST.MF">Manifest-Version: 1.0
Built-Date: ${NOW}
version: "${bundleversion}"
id: "${id}"
groupId: "${groupId}"
artifactId: "${artifactId}"
name: "${label}"
description: "${description}"
lucee-core-version: "${luceeCoreVersion}"
release-type: ${releaseType}
start-bundles: false
</echo>
</target>
<target name="dist" depends="createManifest" description="generate the distribution" >
<!-- copy the flds necessary -->
<copy file="${fld}/function.fld" tofile="${dist}/extension/flds/argon2-functions.fld" />
<replaceregexp file="${dist}/extension/flds/argon2-functions.fld" match="\{maven\}" replace="${mvnGroupId}:${mvnArtifactId}:${bundleversion}" byline="true"/>
<!-- copy the logo -->
<copy todir="${dist}/extension/META-INF">
<fileset dir="${srcImg}/">
<include name="logo.png"/>
</fileset>
</copy>
<!-- Zip everything -->
<zip destfile="${dist}/${filename}-${bundleversion}.lex">
<zipfileset dir="${dist}/extension"/>
</zip>
<!-- Lite artifact: same but without bundled Maven dependencies -->
<zip destfile="${dist}/${filename}-${bundleversion}.lite.lex">
<zipfileset dir="${dist}/extension">
<exclude name="maven/**"/>
</zipfileset>
</zip>
</target>
<target name="clean" depends="dist" description="clean up" >
<delete dir="${temp}"/>
</target>
</project>