Files
fs-maven-plugin/README.md
2026-04-20 17:47:10 -04:00

85 lines
3.6 KiB
Markdown

# Filesystem Utility Maven Plugin
This is a maven plugin that provides filesystem utility based goals to Maven.
## Usage
```xml
<project>
...
<build>
...
<plugins>
...
<plugin>
<groupId>com.inteligr8</groupId>
<artifactId>fs-maven-plugin</artifactId>
<version>...</version>
<executions>
<execution>
<id>mkdir-test</id>
<phase>generate-test-resources</phase>
<goals><goal>mkdir</goal></goals>
<configuration>
<directories>
<directory>${project.build.directory}/test-path</directory>
</directories>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
...
</project>
```
## Goals
| Goal | Description |
| -------------------- | ----------- |
| `mkdir` | Make one or more directories. |
| `cp` | Copy a file. |
| `mv` | Move a file. |
### Common Configuration Properties
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:-----------:|:--------:| ------- | ----------- |
| `charset` | `string` | | `utf-8` | |
| `skip` | `boolean` | | `false` | |
| `verbose` | `boolean` | | `false` | |
### Goal: `mkdir`
Make one or more directories. If one exists, it is skipped.
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:-----------:|:--------:| ------- | ----------- |
| `paths` | `string[]` | Yes | | A set of `path` elements with `string` values. Do not use `/` or `c:\` to start paths, as those are FS specific. Either use relative paths or variable paths like `${project.build.directory}/...`. All path separators should be `/` (forward slash). |
### Goal: `cp`
Copy a single file to a single file target.
**This is written to be expanded to support fileset-based copies in later versions.**
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:-----------:|:--------:| ------- | ----------- |
| `sourceFile` | `File` | Yes | | The path to a single file. Either use relative paths or variable paths like `${project.build.directory}/...`. All path separators should be '/' (forward slash). |
| `targetFile` | `File` | Yes | | The path to a single file. Either use relative paths or variable paths like `${project.build.directory}/...`. All path separators should be '/' (forward slash). |
### Goal: `mv`
Move a single file to a single file target.
**This is written to be expanded to support fileset-based moves in later versions.**
| Configuration Property | Data Type | Required | Default | Description |
| ---------------------- |:-----------:|:--------:| ------- | ----------- |
| `sourceFile` | `File` | Yes | | The path to a single file. Either use relative paths or variable paths like `${project.build.directory}/...`. All path separators should be '/' (forward slash). |
| `targetFile` | `File` | Yes | | The path to a single file. Either use relative paths or variable paths like `${project.build.directory}/...`. All path separators should be '/' (forward slash). |