brew formula

formula是用来描述所安装软件的信息,包括软件镜像位置、软件构建方式、安装方式...比如查看maven的formula,通过下面命令

brew cat maven

你可以看到下面这些,这就是maven的formula文件描述

require 'formula'

class Maven < Formula
  homepage 'http://maven.apache.org/'
  url 'http://www.apache.org/dyn/closer.cgi?path=maven/maven-3/3.2.5/binaries/apache-maven-3.2.5-bin.tar.gz'
  # sha1 '1ce6641f7dcb4fd5785bedcdca2979da83f6d23f'
  sha1 '41009327d5494e0e8970b25b77ffed8934cd7ca1'

  def install
    # Remove windows files
    rm_f Dir["bin/*.bat"]

    # Fix the permissions on the global settings file.
    chmod 0644, 'conf/settings.xml'

    prefix.install_metafiles
    libexec.install Dir['*']

    # Leave conf file in libexec. The mvn symlink will be resolved and the conf
    # file will be found relative to it
    bin.install_symlink Dir["#{libexec}/bin/*"] - ["#{libexec}/bin/m2.conf"]
  end

  test do
    (testpath/'pom.xml').write <<-EOS.undent
      <?xml version="1.0" encoding="UTF-8"?>
      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>org.homebrew</groupId>
        <artifactId>maven-test</artifactId>
        <version>1.0.0-SNAPSHOT</version>
      </project>
    EOS
    (testpath/'src/main/java/org/homebrew/MavenTest.java').write <<-EOS.undent
      package org.homebrew;
      public class MavenTest {
        public static void main(String[] args) {
          System.out.println("Testing Maven with Homebrew!");
        }
      }
    EOS
    system "#{bin}/mvn", 'compile'
  end

end

update formula

有时候是很有必要更新或定制你需要安装软件的formula文件描述,比如我的系统更新到OS 10.11时安装maven时发现总是下载失败,失败原因就是formula文件描述的maven镜像有问题,这时我们直接修改formula的镜像描述,问题就可以解决,可以通过下面命令就可以编辑了

brew edit maven

wangjuntytl
292 声望10 粉丝

互联网从业者


引用和评论

0 条评论