Pom
The following metadata fields can be extracted from a pom.xml file.
These fields are defined in the Maven POM specification, currently at version 4.0.0, and are mapped according to the CodeMeta crosswalk for Java (Maven).
| Software metadata category | SOMEF metadata JSON path | POM.XML metadata file field |
|---|---|---|
| authors - value | authors[i].result.value | developers.developer.name |
| authors - name | authors[i].result.name | developers.developer.name |
| authors - email | Aauthors[i].result.email | developers.developer.email |
| authors - url | authors[i].result.url | developers.developer.url |
| authors - affiliation | authors[i].result.affiliation | developers.developer.organization |
| has_package_file | has_package_file[i].result .value | URL of the pom.xml file |
| homepage | homepage[i].result.value | homepage |
| issue_tracker | issue_tracker[i].result .value | issueManagement.url |
| package_distribution - value | package_distribution[i].result value | scm.url (1) |
| package_distribution - value | package_distribution[i].result.value | repositories.repository(id) (2) |
| package_distribution - name | package_distribution[i].result.name | repositories.repository(name) (2) |
| package_distribution - url | package_distribution[i].result.url | repositories.repository(url) (2) |
| requirements - value | requirements[i].result.value | dependencies.dependency.grpId.arfifactId (3) |
| requirements - name | requirements[i].result.name | dependencies.dependency.arfifactId (3) |
| requirements - version | requirements[i].result.version | dependencies.dependency.version (3) |
| package_id | package_id[i].result .value | group_id.artifact_id (4) |
| runtime_platform - value | runtime_platform[i].result.value | properties extract name version (5) |
| runtime_platform - name | runtime_platform[i].result.name | properties extract name (5) |
| runtime_platform - value | runtime_platform[i].result.value | properties extract version (5) |
| version | version[i].result .value | version |
(1)
- Example:
<scm>
<connection>scm:svn:http://127.0.0.1/svn/my-project</connection>
<developerConnection>scm:svn:https://127.0.0.1/svn/my-project</developerConnection>
<tag>HEAD</tag>
<url>http://127.0.0.1/websvn/my-project</url>
</scm>
- Result:
package_distribution': [{'result': {'value': 'http://127.0.0.1/websvn/my-project', 'type': 'Url'}, 'confidence': 1, 'technique': 'code_parser', 'source': 'https://example.org/pom.xml'}]
(2)
- Example:
</repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
- Result:
'package_distribution': [{
'result': {
'value': 'jitpack.io',
'url': 'https://jitpack.io',
'type': 'Url'
}
(3)
- Example:
<dependencies>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>3.9.0</version>
</dependency>
</dependencies>
- Result:
'requirements': [{
'result':
{'value': 'org.apache.maven.maven-model',
'name': 'maven-model',
'version': '3.9.0',
'type': 'Software_application'},
(4)
- Example:
<groupId>es.oeg</groupId>
<artifactId>widoco</artifactId>
```
- Result:
'package_id': [{ 'result': { 'value': 'es.oeg.widoco',
*(5)*
- Example:
<properties>
<java.version>1.8</java.version>
</properties>
- Result:
[{'value': 'Java: 1.8', 'name': 'Java', 'version': '1.8'}] ```