-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.xml
More file actions
93 lines (85 loc) · 4.67 KB
/
build.xml
File metadata and controls
93 lines (85 loc) · 4.67 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
<?xml version="1.0" encoding="UTF-8"?>
<!-- You may freely edit this file. See commented blocks below for -->
<!-- some examples of how to customize the build. -->
<!-- (If you delete it and reopen the project it will be recreated.) -->
<!-- By default, only the Clean and Build commands use this build script. -->
<!-- Commands such as Run, Debug, and Test only use this build script if -->
<!-- the Compile on Save feature is turned off for the project. -->
<!-- You can turn off the Compile on Save (or Deploy on Save) setting -->
<!-- in the project's Project Properties dialog box.-->
<project name="SmartWebServiceTemplate" default="default" basedir=".">
<description>Builds, tests, and runs the project SmartWebServiceTemplate.</description>
<import file="nbproject/build-impl.xml"/>
<!--
Target to remove jakartaee.jar from WEB-INF/lib after WAR creation.
This prevents Payara from trying to activate CDI when it's not needed.
-->
<target name="-post-dist">
<echo message="Removing jakartaee.jar from WAR file to prevent CDI activation..."/>
<!-- Create temporary directory for WAR extraction -->
<tempfile property="temp.dir" destdir="${java.io.tmpdir}" prefix="war-"/>
<mkdir dir="${temp.dir}"/>
<!-- Unzip the WAR file -->
<unzip src="${dist.dir}/${war.name}" dest="${temp.dir}"/>
<!-- Delete jakartaee.jar from WEB-INF/lib -->
<delete failonerror="false">
<fileset dir="${temp.dir}/WEB-INF/lib">
<include name="jakartaee-*.jar"/>
<include name="jakarta.jakartaee-api-*.jar"/>
<include name="jakartaee-api-*.jar"/>
</fileset>
</delete>
<!-- Re-package the WAR without jakartaee.jar -->
<delete file="${dist.dir}/${war.name}"/>
<zip destfile="${dist.dir}/${war.name}" basedir="${temp.dir}"/>
<!-- Clean up temporary directory -->
<delete dir="${temp.dir}"/>
<echo message="Successfully removed jakartaee.jar from ${war.name}"/>
</target>
<!--
There exist several targets which are by default empty and which can be
used for execution of your tasks. These targets are usually executed
before and after some main targets. They are:
-pre-init: called before initialization of project properties
-post-init: called after initialization of project properties
-pre-compile: called before javac compilation
-post-compile: called after javac compilation
-pre-compile-single: called before javac compilation of single file
-post-compile-single: called after javac compilation of single file
-pre-compile-test: called before javac compilation of JUnit tests
-post-compile-test: called after javac compilation of JUnit tests
-pre-compile-test-single: called before javac compilation of single JUnit test
-post-compile-test-single: called after javac compilation of single JUunit test
-pre-dist: called before archive building
-post-dist: called after archive building
-post-clean: called after cleaning build products
-pre-run-deploy: called before deploying
-post-run-deploy: called after deploying
Example of pluging an obfuscator after the compilation could look like
<target name="-post-compile">
<obfuscate>
<fileset dir="${build.classes.dir}"/>
</obfuscate>
</target>
For list of available properties check the imported
nbproject/build-impl.xml file.
Other way how to customize the build is by overriding existing main targets.
The target of interest are:
init-macrodef-javac: defines macro for javac compilation
init-macrodef-junit: defines macro for junit execution
init-macrodef-debug: defines macro for class debugging
do-dist: archive building
run: execution of project
javadoc-build: javadoc generation
Example of overriding the target for project execution could look like
<target name="run" depends="<PROJNAME>-impl.jar">
<exec dir="bin" executable="launcher.exe">
<arg file="${dist.jar}"/>
</exec>
</target>
Notice that overridden target depends on jar target and not only on
compile target as regular run target does. Again, for list of available
properties which you can use check the target you are overriding in
nbproject/build-impl.xml file.
-->
</project>