3

如果 Frege 有一个 POM 并上传到 maven central 或 bintray,我可以轻松地将它用作 maven、gradle、buildr 和 via grapes 中的 maven 依赖项。不过我没找到。有没有这样的事情?我不需要完整的 Maven 插件。

4

1 回答 1

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 编译)由顺序确定构建模块。

于 2013-09-11T00:10:27.240 回答