SMILA/Development Guidelines/Introduction to make.xml
Overview of ant build targets
Build process graph
make.xml
Targets | ||
name | description | dependencies |
all | executes all dependencies, default build target | clean, fetch, build, build-jmxclient, final-application, test |
clean | deletes the build directory (smila.build) and the workspace folder under SMILA.builder | / |
fetch | copies all features and plugins to the build directory | bundle.names.init |
bundle.names.init | white space delimited list of bundle names (i.e. their dir name) | / |
build | executes all dependencies | fetch, build.core |
build.core | builds the application (CI.SMILA not final-application) | / |
build-jmxclient | builds the jmxclient tool | / |
test | executes all dependencies | build, test.clean, test.core, report |
test.clean | executes all dependencies, deletes the eclipse-test dir under the build directory (eclipse.build) and unzips CI.SMILA | build.test.feature |
build.test.feature | builds the test feature | / |
test.core | executes all dependencies and starts all junit tests | bundle.names.init |
report | executes all dependencies | test.report, checkstyle, report.jacoco, pmd, pmd-cpd |
test.report | collects unit test results | / |
checkstyle | runs all checkstyle checks | / |
report.jacoco | creates jacoco report | / |
pmd | scans Java source code and looks for potential problems | / |
pmd-cpd | Runs pmd-cpd (potential duplication) check | / |
final-application | builds the final application | build, build-jmxclient |
test.clean2default | deletes workspace and configuration folder under eclipse-test and copies default config.in into configuration folder under eclipse-test | / |
all-without-test | executes all dependencies (builds the application but omits tests and reports) | clean,fetch,build,build-jmxclient,final-application |
Properties | |
name | description |
feature-names | list of all features |
Patternsets | |
name | description |
patterns.bundle.all | list of all plugins |
patterns.bundle.excludes | list of all exluded plugins |
Dirsets/Restrict | |
name | description |
bundle.dirs.all | list of all plugins (patterns.bundle.all - patterns.bundle.excludes) |
bundle.dirs.smila | list of all SMILA plugins (org.eclipse.smila.* - patterns.bundle.excludes) |
bundle.dirs.3rd | list of all 3rd party plugins (patterns.bundle.all - patterns.bundle.excludes - org.eclipse.smila.*) |
bundle.dirs.all.test | list of all test bundles |
bundle.dirs.smila.test | list of all SMILA test bundles |
bundle.dirs.3rd.test | list of all 3rd party test bundles |
macros.build.xml
name | description |
---|---|
M_test.bundle.smila | executes all tests in a bundle |
M_dirset2list | converts a dirset of plugins to a name list |
Tips and Tricks
Our make.xml includes all packages that start with specific patterns:
<patternset id='patterns.bundle.all'> ... <include name="org.*" /> ... </patternset>
Exclude bundles from build
To exclude a bundle (core or test) from build you have to include your bundle in the patterns.bundle.excludes-section.
<!-- the follwoing projects are excluded from build --> <patternset id='patterns.bundle.excludes'> <exclude name="*.feature" /> </patternset>
Don´t execute a test
To don´t execute a test you have to include your test bundle in the bundle.dirs.all.test-section.
<restrict id="bundle.dirs.all.test"> <dirset refid="bundle.dirs.all" /> <rsel:name name="*.test" /> <rsel:not> <rsel:or> ... <rsel:name name="org.eclipse.smila.test" /> ... </rsel:or> </rsel:not> </restrict>