代码之家  ›  专栏  ›  技术社区  ›  Wolfgang Fahl

检查pom.xml是否符合github页面的mvn site命令

  •  2
  • Wolfgang Fahl  · 技术社区  · 6 年前

    mvn site
    

    由于maven和github页面工作方式的改变,最近出现了许多障碍。

    学习之后

    以下是我发现的一些必要的先决条件和遇到的问题:

    1. git branch需要显示一个gh pages分支,例如在使用 https://gist.github.com/ramnathv/2227408
    2. 必须正确配置maven site插件和maven project info reports插件的版本: maven-site plugins 3.3 java.lang.ClassNotFoundException: org.apache.maven.doxia.siterenderer.DocumentContent
    3. Why am I getting Maven error: "Unable to determine if resource X exists in http://maven.glassfish.org/content/groups/glassfish"?

    问题

    甚至没有提到我必须用于ssh-wagon、Java8-javadoc和其他的工作方法

    使用的插件是一个“移动目标”。以我的经验来看,几个月前成功的事情今天不会成功。因此,我不断地修复pom.xml文件以保持更新,文件会越来越长。

    参见例如。 https://github.com/BITPlan/com.bitplan.simplerest/blob/master/pom.xml

    对于我的内部项目,我使用父pom来确保项目具有公共配置。对于开放源代码项目,我还没有找到一种方法来为一组项目使用父pom。

    我想确保我找到的工作配置被“转移”到其他配置。我在想,例如

    1. 可能检查配置的脚本
    2. 某种遗传机制,比如父pom

    我认为这是一个非常常见的问题,因此用户在如何处理不同项目的问题上有经验。

    什么样的方法是好的,什么样的工具是有用的?

    1. 带pom包装的母体pom What is "pom" packaging in maven? Maven: Non-resolvable parent POM . 配置的重写在 Maven : Is it possible to override the configuration of a plugin already defined for a profile in a parent POM

    移动目标示例

    1 回复  |  直到 6 年前
        1
  •  1
  •   Wolfgang Fahl    6 年前

    由建议 khmarbaise 现在有一个 common parent pom 到位。

    mvn site
    

    for all projects using this parent pom 使用一组通用的报告,结果将被传输到相应的github页面。

    特定项目的pom现在可以 be as short as just 25 lines

    我现在正在为pom文件创建一个检查脚本,并为README.md文件创建一个生成脚本。这是一个有用的片段:

    用法示例:

    checkghpages https://github.com/BITPlan com.bitplan.simplerest
    

    检查gh页面是否存在,并在询问后创建

    #
    # check the github pages for the given project
    # 
    # param 1: base url in github
    # param 2: project name/directory
    #
    checkghpages() {
      local l_baseurl="$1"
      local l_project="$2"
      cd $ws/$l_project
      git ls-remote --heads | grep gh-pages > /dev/null
      if [ $? -ne 0 ]
      then
        color_msg $red "github pages branch gh-pages missing for $l_project"
        color_msg $blue "shall i create the branch gh-pages for $l_project?"
        read answer
        case $answer in
          y|Y|yes|Yes|j|Ja) 
            color_msg $blue "creating gh-pages branch for $l_project ..."
            cd /tmp
            # https://gist.github.com/ramnathv/2227408
            git clone $l_baseurl/$l_project
            cd $l_project
            git symbolic-ref HEAD refs/heads/gh-pages
            rm .git/index
            git clean -fdx
            echo "<a href='$l_baseurl/$l_project'>Initial GitHub Page for $l_project</a>" > index.html
            git add .
            git commit -a -m "First pages commit by checkos script"
            git push origin gh-pages
            cd $ws/$l_project
            git pull
          ;;
        esac
      else
        color_msg $green "github pages branch gh-pages for $l_project exists✓"
      fi
    }