Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "SMILA/Development Guidelines/Introduction to make.xml"

(make.xml)
m (make.xml)
 
(8 intermediate revisions by 3 users not shown)
Line 17: Line 17:
 
|all
 
|all
 
|executes all dependencies, default build target
 
|executes all dependencies, default build target
|clean, fetch, build, build-jmxclient, test, final-application
+
|clean, fetch, build, build-jmxclient, final-application, test
 
|-
 
|-
 
|clean
 
|clean
Line 36: Line 36:
 
|-
 
|-
 
|build.core
 
|build.core
|builds the application (CI.EILF not final-application)
+
|builds the application (CI.SMILA not final-application)
 
| /  
 
| /  
 
|-
 
|-
Line 45: Line 45:
 
|test
 
|test
 
|executes all dependencies
 
|executes all dependencies
|build, test.clean, emma.init, test.core, report
+
|build, test.clean, test.core, report
 
|-
 
|-
 
|test.clean
 
|test.clean
|deletes the eclipse-test dir under the build directory (eclipse.build)
+
|executes all dependencies, deletes the eclipse-test dir under the build directory (eclipse.build) and unzips CI.SMILA
| /
+
|build.test.feature
 
|-
 
|-
|emma.init
+
|build.test.feature
|initialises emma
+
|builds the test feature
| /  
+
| /
 
|-
 
|-
 
|test.core
 
|test.core
Line 61: Line 61:
 
|report
 
|report
 
|executes all dependencies
 
|executes all dependencies
|test.report, checkstyle, report.emma, pmd
+
|test.report, checkstyle, report.jacoco, pmd, pmd-cpd
 
|-
 
|-
 
|test.report
 
|test.report
Line 71: Line 71:
 
| /  
 
| /  
 
|-
 
|-
|report.emma
+
|report.jacoco
|creates emma report
+
|creates jacoco report
 
| /  
 
| /  
 
|-
 
|-
Line 79: Line 79:
 
| /  
 
| /  
 
|-
 
|-
|final-application-windows
+
|pmd-cpd
|builds the final windows application
+
|Runs pmd-cpd (potential duplication) check
|build
+
| /
 
|-
 
|-
|final-application-linux
+
|final-application
|builds the final linux application
+
|builds the final application
|build  
+
|build, build-jmxclient
 
|-
 
|-
 
|test.clean2default
 
|test.clean2default
 
|deletes workspace and configuration folder under eclipse-test and copies default config.in into configuration folder under eclipse-test
 
|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
 
|-
 
|-
 
|}
 
|}
Line 126: Line 130:
 
|bundle.dirs.all
 
|bundle.dirs.all
 
|list of all plugins (patterns.bundle.all - patterns.bundle.excludes)
 
|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
 
|bundle.dirs.all.test
 
|list of all test bundles
 
|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
 
|-
 
|-
 
|}
 
|}
Line 138: Line 154:
 
!bgcolor="#f0f0f0"|description
 
!bgcolor="#f0f0f0"|description
 
|-
 
|-
|M_test.bundle.eilf
+
|M_test.bundle.smila
|executes all tests
+
|executes all tests in a bundle
 
|-
 
|-
 
|M_dirset2list
 
|M_dirset2list
 
|converts a dirset of plugins to a name list
 
|converts a dirset of plugins to a name list
 
|}
 
|}
 
  
 
=== Tips and Tricks ===
 
=== Tips and Tricks ===
  
Our make.xml includes all packages those start with the following patterns: '''com, javax, net, oracle, org'''.
+
Our make.xml includes all packages that start with specific patterns:  
 
<source lang="xml">
 
<source lang="xml">
 
<patternset id='patterns.bundle.all'>
 
<patternset id='patterns.bundle.all'>
   <include name="com.*" />
+
   ...
  <include name="javax.*" />
+
  <include name="net.*" />
+
  <include name="oracle.*" />
+
 
   <include name="org.*" />
 
   <include name="org.*" />
 +
  ...
 
</patternset>
 
</patternset>
 
</source>
 
</source>
Line 161: Line 174:
 
'''Exclude bundles from build'''
 
'''Exclude bundles from build'''
  
To exlude a bundle (core or test) from build you have to include your bundle in the '''patterns.bundle.excludes-section'''.
+
To exclude a bundle (core or test) from build you have to include your bundle in the '''patterns.bundle.excludes'''-section.
 
<source lang="xml">
 
<source lang="xml">
 
<!-- the follwoing projects are excluded from build -->
 
<!-- the follwoing projects are excluded from build -->
 
<patternset id='patterns.bundle.excludes'>
 
<patternset id='patterns.bundle.excludes'>
  ...
+
   <exclude name="*.feature" />
   <exclude name="org.eclipse.eilf.sample.bundle" />
+
  ...
+
 
</patternset>
 
</patternset>
 
</source>
 
</source>
Line 173: Line 184:
 
'''Don´t execute a test'''
 
'''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'''.
+
To don´t execute a test you have to include your test bundle in the '''bundle.dirs.all.test'''-section.
  
 
<source lang="xml">
 
<source lang="xml">
Line 182: Line 193:
 
     <rsel:or>
 
     <rsel:or>
 
       ...
 
       ...
       <rsel:name name="org.eclipse.eilf.sample.bundle.test" />
+
       <rsel:name name="org.eclipse.smila.test" />
 
       ...
 
       ...
 
     </rsel:or>
 
     </rsel:or>
 
   </rsel:not>
 
   </rsel:not>
 
</restrict>
 
</restrict>
</source>
 
 
'''Don´t generate reports for pmd, checkstyle and/or emma (code coverage)'''
 
 
If you don´t want to generate reports for pmd, checkstyle and/or emma you just have to set the values of the properties to false in the '''macros.build.xml'''
 
 
<source lang="xml">
 
<property name="EMMA.REPORT" value="false" />
 
<property name="EMMA.CLASSPATH" value="emma.lib" />
 
<property name="CHECKSTYLE.REPORT" value="false" />
 
<property name="CHECKSTYLE.CLASSPATH" value="checkstyle.lib" />
 
<property name="PMD.REPORT" value="false" />
 
<property name="PMD.CLASSPATH" value="pmd.lib" />
 
 
</source>
 
</source>

Latest revision as of 10:12, 8 April 2013

Overview of ant build targets

Build.all.png

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>

Back to the top