There is support for generating source code from some form of template.
Usually requires a plugin for the "template" engine, or antrun and
build-helper:add-source

You would keep the "template" outside if src/main/java and then the
generated source goes to something like target/generated-source/... And
that path gets added as a source root.

But keep in mind the principle of environment agnostic artifacts. Tuning
logging levels is not such, so abusing to do such is a bad plan

On Friday, 16 November 2012, John Kramer wrote:

> I know that this may not address your question directly, but I suggest
> that you change your approach.
>
> Rather than build two different artifacts for debugging or not debugging,
> I suggest that you make the a runtime configuration.  Look into various
> logging frameworks (log4j, log back) that will allow this.  They are pretty
> flexible and should probably help you.
>
> If they don't address your issue, you should look into using java system
> properties.  The tag <argLine> will allow you to set them in tests run with
> the surefire plugin.
>
> You can also package a properties file with your code and use maven
> properties to filter that.  However, as far as I know, Maven only has the
> capability to filter resources (such as the aforementioned properties
> file), not java source code (and if it does have that capability, I would
> suggest not using it as it would screw up static source tools).
>
>
> John Kramer
> email: jkra...@mojiva.com 
> <javascript:;><mailto:jkra...@mojiva.com<javascript:;>
> >
> mobile: 314.435.2370
> skype: kramer.mojiva
> twitter: @KramerKnowsTech<https://twitter.com/KramerKnowsTech>
> 0xCAFEBABE00000032
>
>
> From: "Nick Cuneo (ncuneo)" <ncu...@cisco.com <javascript:;><mailto:
> ncu...@cisco.com <javascript:;>>>
> Reply-To: Maven Users List <users@maven.apache.org <javascript:;><mailto:
> users@maven.apache.org <javascript:;>>>
> Date: Friday, November 16, 2012 16:53 PM
> To: "users@maven.apache.org 
> <javascript:;><mailto:users@maven.apache.org<javascript:;>>"
> <users@maven.apache.org 
> <javascript:;><mailto:users@maven.apache.org<javascript:;>
> >>
> Subject: Properties within source code
>
> Hi,
>
> We are attempting to migrate our build environment from being very
> Ant-centric, to be Maven-centric.  We have a source file (Trace.java) that
> has a couple of variables that get set for debug/non-debug builds.  The
> code is as follows
> public boolean DEBUG = ${debug.enabled};
>
> Obviously this won’t compile as is, but with Ant we were able to replace
> that property at compile time so it would build the appropriate package.
>  I’m trying to get that same functionality with Maven… I’ve looked into
> trying to add the file as a resource and creating the property in the
> pom.xml.  I’ve also tried using the google-replace plugin, but that didn’t
> seem to work well either.  Am I just not doing it right?  I’m learning
> Maven as I go so I figured that’s a possibility.  I’ve tried doing searches
> on the subject with google and looking through maven documentation and it
> feels straightforward but just not working for me.
>
> Example from pom:
> <properties>
>                                 <debug.enabled>true</debug.enabled>
> </properties>
> <build>
> …
> <resources>
>                 <resource>
>                                 <directory>${basedir}/src/trace</directory>
>                                 <includes>
>
> <include>Trace.java</include>
>                                 </includes>
>                 </resource>
> </resources>
>
> I see in the log that it’s doing something with the file, maybe not what I
> was intending though:
> [INFO] Copying 1 resource
>
> Any help would be appreciative.
>
>
> Thanks,
>      Nick
> [Description:
> http://www.cisco.com/web/europe/images/email/signature/logo02.jpg]
>
> Nicholas Cuneo
> Software Engineer
> SPVTG
> ncu...@cisco.com <javascript:;><mailto:ncu...@cisco.com <javascript:;>>
> Phone: 1-714-434-2344
> Mobile: 1-949-243-4952
>
>
>
> 3500 Hyland Ave
> Costa Mesa, CA
> United States
> Cisco.com<http://www.cisco.com/>
>
> Download vCard[Description: Virtual Card File]<
> http://wwwin-tools.cisco.com/dir/vcard/ncuneo.vcf>
>
>
> [Description: Think before you print.]Think before you print.
> This email may contain confidential and privileged material for the sole
> use of the intended recipient. Any review, use, distribution or disclosure
> by others is strictly prohibited. If you are not the intended recipient (or
> authorized to receive for the recipient), please contact the sender by
> reply email and delete all copies of this message.
> For corporate legal information go to:
> http://www.cisco.com/web/about/doing_business/legal/cri/index.html
>
>
>
>
>
>
>

Reply via email to