On Thu, Jun 12, 2014 at 12:18 AM, Adam Murdoch <adam.murd...@gradleware.com>
wrote:

>
> On 7 Jun 2014, at 3:57 pm, Thomas Broyer <t.bro...@gmail.com> wrote:
>
>
>
>
> On Sat, Jun 7, 2014 at 11:28 PM, Adam Murdoch <adam.murd...@gradleware.com
> > wrote:
>
>>
>> On 7 Jun 2014, at 9:41 am, Thomas Broyer <t.bro...@gmail.com> wrote:
>>
>> Hi,
>>
>> I'd like to work on GRADLE-3085 [1] and would like guidance on how to
>> proceed:
>>
>> * how to configure the javax.tool.JavaCompiler to use in the DSL
>> * how to implement it
>> * how to test it
>>
>> Looking at the current code, I think Gradle could expose some kind of
>> JavaCompilerProvider on the JavaCompile task or its CompileOptions:
>>
>>     interface JavaCompilerProvider {
>>       javax.tool.JavaCompiler getJavaCompiler();
>>     }
>>
>>
>> I think what we want to do here is model the Java compiler as a
>> toolchain, similar to what we’re doing for the native C/C++ languages.
>>
>> A toolchain is essentially just a factory for tools that do some work -
>> the java compiler in this instance. There would be a few different
>> implementations - one that uses the compiler from the current jdk, and one
>> that uses an installed jdk. There can then also be other implementations:
>> one that uses error_prone, one that uses the Eclipse compiler, one that
>> uses the aspectj compiler, and so on.
>>
>> A project would have a set of available java toolchains, from which the
>> build author can select a particular implementation. Each JavaCompile task
>> (and GroovyCompile and ScalaCompile task for joint compilation) would have
>> an associated toolchain instance. There should also be a project level
>> default toolchain.
>>
>
> Sounds great!
>
> When do you think it'd be ready?
> I'm almost ready to submit a pull request for what I proposed; so it could
> possibly be used in the mean time, if you think it's worth it.
>
>
> There’s some stuff in master already (as of not very long ago). Each
> JavaCompile task has an associated JavaToolChain. Your plugin could then
> provide its own implementation.
>
> At this stage, you still need to use internal stuff to implement a
> JavaToolChain. Over time we can open up some public APIs to make this
> easier.
>


master will become 2.1, right?
so 2.0 gives me no alternative other than forking a JVM (java -cp
<error_prone classpath> com.google.errorprone.ErrorProneCompile <javac
arguments>) ?

-- 
Thomas Broyer
/tɔ.ma.bʁwa.je/ <http://xn--nna.ma.xn--bwa-xxb.je/>

Reply via email to