如果弗雷格有一个POM并被上传到maven central或bintray,我可以很容易地将它用作maven,gradle,buildr和via grape中的maven依赖。 但是我找不到它。有这样的事吗? 我不需要一个完整的maven插件。
答案 0 :(得分:3)
Frege有一个Maven插件:https://github.com/talios/frege-maven-plugin但我不确定它与目前的Frege版本有多大关系。
据我所知,Frege jar仍然不在任何中央存储库中,因此您需要将它放在某个本地存储库中才能使用该插件。例如,https://github.com/talios/frege-testing/blob/master/pom.xml
您也可以通过Maven中的Ant调用Frege编译器(不是最好的方法,但仍然是一个选项):
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>compile</phase>
<configuration>
<target>
<property name="compile_classpath" refid="maven.compile.classpath" />
<property name="outputDir"
value="${project.build.outputDirectory}" />
<property name="sourceDir" value="src/main/frege" />
<property name="fregec" value="${frege:frege:jar}" />
<exec executable="java" failonerror="true">
<arg value="-Xss1m" />
<arg value="-Dfrege.javac=javac" />
<arg value="-classpath" />
<arg value="${compile_classpath}" />
<arg value="frege.compiler.Main" />
<arg value="-d" />
<arg path="${outputDir}" />
<arg value="${sourceDir}/helloworld/Foo.fr" />
<arg value="${sourceDir}/helloworld/bar.fr" />
</exec>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
此处frege:frege:jar
也指本地存储库中的Frege jar。如果您的Frege代码或其他方式有任何Java依赖关系,那么最好将它们作为单独的模块(Java模块和Frege模块),以便编译顺序(Java和Frege编译)由顺序确定模块已建成。