如果没有在属性中指定变量,那么pom内部使用的依赖项的groupId将是什么?

时间:2018-11-05 14:10:22

标签: maven maven-2 pom.xml

我正在寻找的pom是:

from collections import Counter
from heapq import nlargest
from toolz import unique

x = 'BBBAAACCD'

c = Counter(x)
n = 2
nth_largest = nlargest(n, unique(c.values()))[-1]

def sort_key(x):
    return -x[1], x[0]

gen = ((k, v) for k, v in c.items() if v >= nth_largest)
res = sorted(gen, key=sort_key)

[('A', 3), ('B', 3), ('C', 2)]

我不明白的是,在使用的依赖项中指定$ {pom.groupId}的任何地方都将使用什么groupId。我已经查看了父pom的文件,但未能在其中找到任何名称为pom.groupId的变量。那么将从何处获取groupId?

我唯一可以做的假设是,它应该使用pom本身的groupId,但那里也不存在,只存在artifactId和version标记。
注意-我通过使用GAV信息获取pom,所以我有了groupId,但是我敢肯定应该有一种更具体或某种方法来从pom本身确定groupId。

又一个pom实例已经完成(第3个依赖项),但是这里存在groupId标记,但是不存在$ {version}:
这里的$ {groupId}和$ {version}的值是什么? (此pom的父母也没有该名称的任何变量)

<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">
<parent>
  <groupId>org.apache.felix</groupId>
  <artifactId>felix-parent</artifactId>
  <version>1.2.0</version>
  <relativePath>../pom/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>bundle</packaging>
<name>Apache Felix Main</name>
<artifactId>org.apache.felix.main</artifactId>
<version>2.0.2</version>
<dependencies>
  <dependency>
    <groupId>${pom.groupId}</groupId>
    <artifactId>org.apache.felix.framework</artifactId>
    <version>2.0.2</version>
    <exclusions>
      <exclusion>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
      </exclusion>
      <exclusion>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.compendium</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <groupId>${pom.groupId}</groupId>
    <artifactId>org.apache.felix.shell</artifactId>
    <version>1.4.1</version>
    <exclusions>
      <exclusion>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
      </exclusion>
      <exclusion>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.compendium</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <groupId>${pom.groupId}</groupId>
    <artifactId>org.apache.felix.shell.tui</artifactId>
    <version>1.4.1</version>
    <exclusions>
      <exclusion>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
      </exclusion>
      <exclusion>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.compendium</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
  <dependency>
    <groupId>${pom.groupId}</groupId>
    <artifactId>org.apache.felix.bundlerepository</artifactId>
    <version>1.4.2</version>
    <exclusions>
      <exclusion>
        <groupId>${pom.groupId}</groupId>
        <artifactId>org.osgi.core</artifactId>
      </exclusion>
      <exclusion>
        <groupId>${pom.groupId}</groupId>
        <artifactId>org.osgi.compendium</artifactId>
      </exclusion>
      <exclusion>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.core</artifactId>
      </exclusion>
      <exclusion>
        <groupId>org.osgi</groupId>
        <artifactId>org.osgi.compendium</artifactId>
      </exclusion>
      <exclusion>
        <groupId>${pom.groupId}</groupId>
        <artifactId>org.osgi.service.obr</artifactId>
      </exclusion>
      <exclusion>
        <groupId>net.sf.kxml</groupId>
        <artifactId>kxml2</artifactId>
      </exclusion>
    </exclusions>
  </dependency>
</dependencies>
<properties>
  <log.level>1</log.level>
  <dollar>$</dollar>
</properties>
<profiles>
  <profile>
    <id>release</id>
    <properties>
      <log.level>1</log.level>
      <dollar>$</dollar>
    </properties>
  </profile>
</profiles>
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.felix</groupId>
      <artifactId>maven-bundle-plugin</artifactId>
      <version>1.4.3</version>
      <extensions>true</extensions>
      <configuration>
        <instructions>
          <_donotcopy>(CVS|.svn|config.properties)</_donotcopy>
          <Main-Class>org.apache.felix.main.Main</Main-Class>
          <Bundle-SymbolicName>org.apache.felix.main</Bundle-SymbolicName>
          <Bundle-Name>Apache Felix</Bundle-Name>
          <Bundle-Description>OSGi R4 framework.</Bundle-Description>
          <Bundle-Vendor>The Apache Software Foundation</Bundle-Vendor>
          <Embed-Dependency>*;artifactId=org.apache.felix.framework;inline=true</Embed-Dependency>
          <Private-Package>org.apache.felix.main.*</Private-Package>
          <Export-Package>!org.osgi.service.log, !org.osgi.service.obr,org.osgi.*</Export-Package>
          <Import-Package>!*</Import-Package>
          <Include-Resource>META-INF/LICENSE=LICENSE,META-INF/NOTICE=NOTICE,{src/main/resources/}</Include-Resource>
        </instructions>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>rat-maven-plugin</artifactId>
      <configuration>
        <excludeSubProjects>false</excludeSubProjects>
        <useEclipseDefaultExcludes>true</useEclipseDefaultExcludes>
        <useMavenDefaultExcludes>true</useMavenDefaultExcludes>
        <excludes>
          <param>doc/*</param>
          <param>maven-eclipse.xml</param>
          <param>.checkstyle</param>
          <param>.externalToolBuilders/*</param>
        </excludes>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <executions>
        <execution>
          <id>unpack</id>
          <phase>validate</phase>
          <goals>
            <goal>unpack</goal>
          </goals>
          <configuration>
             <outputDirectory>${project.build.outputDirectory}</outputDirectory>
            <artifactItems>
              <artifactItem>
                <groupId>${pom.groupId}</groupId>
                <artifactId>org.apache.felix.framework</artifactId>
                <version>2.0.2</version>
              </artifactItem>
            </artifactItems>
          </configuration>
        </execution>
        <execution>
          <id>copy</id>
          <phase>install</phase>
          <goals>
            <goal>copy</goal>
          </goals>
          <configuration>
              <artifactItems>
                <artifactItem>
                   <groupId>${pom.groupId}</groupId>
                   <artifactId>org.apache.felix.shell</artifactId>
                   <version>1.4.1</version>
                   <type>jar</type>
                   <overWrite>true</overWrite>
                   <outputDirectory>${project.build.directory}/bundle</outputDirectory>
                 </artifactItem>
                 <artifactItem>
                   <groupId>${pom.groupId}</groupId>
                   <artifactId>org.apache.felix.shell.tui</artifactId>
                   <version>1.4.1</version>
                   <type>jar</type>
                   <overWrite>true</overWrite>
                   <outputDirectory>${project.build.directory}/bundle</outputDirectory>
                 </artifactItem>
                 <artifactItem>
                   <groupId>${pom.groupId}</groupId>
                   <artifactId>org.apache.felix.bundlerepository</artifactId>
                   <version>1.4.2</version>
                   <type>jar</type>
                   <overWrite>true</overWrite>
                   <outputDirectory>${project.build.directory}/bundle</outputDirectory>
                 </artifactItem>
               </artifactItems>
          </configuration>
        </execution>
      </executions>
    </plugin>
    <plugin>
      <artifactId>maven-antrun-plugin</artifactId>
      <executions>
        <execution>
          <phase>install</phase>
          <configuration>
            <tasks>
              <delete dir="${basedir}/bin" />
              <mkdir dir="${basedir}/bin" />
              <delete dir="${basedir}/conf" />
              <mkdir dir="${basedir}/conf" />
              <delete dir="${basedir}/bundle" />
              <copy file="${basedir}/target/org.apache.felix.main-${pom.version}.jar" tofile="${basedir}/bin/felix.jar" />
              <copy file="${basedir}/target/classes/config.properties" todir="${basedir}/conf" />
              <move file="${basedir}/target/bundle" todir="${basedir}" />
            </tasks>
          </configuration>
          <goals>
            <goal>run</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources> 
</build>

<scm>
  <connection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.main-2.0.2</connection>
  <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.main-2.0.2</developerConnection>
  <url>scm:svn:https://svn.apache.org/repos/asf/felix/releases/org.apache.felix.main-2.0.2</url>
</scm>
</project>

0 个答案:

没有答案