Ahmet Bilgin
2016-12-09 17:59:37 UTC
Hi,
I’ve noticed that Tycho-maven is using the build-output-directory configured in the build.properties (which is used in the Eclipse-IDE) also in the classpath of an headless tycho-maven build.
This is a Problem for our headless multi-module build because we had relied on the headless-build using only the compiled classes from the target/classes directories.
To be concrete we have the following problematic situation:
The classes get compiled to the following output directories depending on whether a headless or an IDE build is performed:
• Headless: target/classes
• IDE: bin
Compiling with tycho-maven the following can be observed:
PLUGIN-A
ECLIPSE_PLUGIN_A's compile classpath contains:
• bin
• why is the Eclipse IDE's output directory listed, when compiling with Tycho maven ? But this is not the real problem.
• target/classes
• as expected
PLUGIN-B
But when compiling ECLIPSE_PLUGIN_B it's compile classpath contains:
• bin
• not expected as mentioned above. But not the real problem
• target/classes
• as expected
• ECLIPSE_PLUGIN_A/bin
• This is a really a problem
• ECLIPSE_PLUGIN_A/target/classes
• as expected
We observed during our multi-module headless build that ECLIPSE_PLUGIN_B uses the compiled classes from ECLIPSE_PLUGIN_A/bin which is not what we expected. This means our headless build depends on the compile output of the IDE.
This had already lead to headless build compile errors due to outdated .class files in the IDE's bin directory, e.g when ECLIPSE_PLUGIN_A/bin outdated => ECLIPSE_PLUGIN_B compile error. This should not be possible.
Hopefully someone can clarify why the IDE's output directory is used in a tycho-maven headless build and how to avoid this.
Thank you!
Ahmet Bilgin
MAGMA Gießereitechnologie Gesellschaft für Gießerei-, Simulations- und Regeltechnik mbH | Kackertstr. 11, 52072 Aachen, Germany | Rechtsform GmbH, Amtsgericht Aachen HRB 3912, UST-ID-Nr. DE121745780 | Geschäftsführung: Dr. Marc C. Schneider (Vorsitzender), Dr.-Ing. Jörg C. Sturm
I’ve noticed that Tycho-maven is using the build-output-directory configured in the build.properties (which is used in the Eclipse-IDE) also in the classpath of an headless tycho-maven build.
This is a Problem for our headless multi-module build because we had relied on the headless-build using only the compiled classes from the target/classes directories.
To be concrete we have the following problematic situation:
The classes get compiled to the following output directories depending on whether a headless or an IDE build is performed:
• Headless: target/classes
• IDE: bin
Compiling with tycho-maven the following can be observed:
PLUGIN-A
ECLIPSE_PLUGIN_A's compile classpath contains:
• bin
• why is the Eclipse IDE's output directory listed, when compiling with Tycho maven ? But this is not the real problem.
• target/classes
• as expected
PLUGIN-B
But when compiling ECLIPSE_PLUGIN_B it's compile classpath contains:
• bin
• not expected as mentioned above. But not the real problem
• target/classes
• as expected
• ECLIPSE_PLUGIN_A/bin
• This is a really a problem
• ECLIPSE_PLUGIN_A/target/classes
• as expected
We observed during our multi-module headless build that ECLIPSE_PLUGIN_B uses the compiled classes from ECLIPSE_PLUGIN_A/bin which is not what we expected. This means our headless build depends on the compile output of the IDE.
This had already lead to headless build compile errors due to outdated .class files in the IDE's bin directory, e.g when ECLIPSE_PLUGIN_A/bin outdated => ECLIPSE_PLUGIN_B compile error. This should not be possible.
Hopefully someone can clarify why the IDE's output directory is used in a tycho-maven headless build and how to avoid this.
Thank you!
Ahmet Bilgin
MAGMA Gießereitechnologie Gesellschaft für Gießerei-, Simulations- und Regeltechnik mbH | Kackertstr. 11, 52072 Aachen, Germany | Rechtsform GmbH, Amtsgericht Aachen HRB 3912, UST-ID-Nr. DE121745780 | Geschäftsführung: Dr. Marc C. Schneider (Vorsitzender), Dr.-Ing. Jörg C. Sturm