mvn archetype:generate \
-DgroupId=com.example \
-DartifactId=my-library \
-DarchetypeArtifactId=maven-archetype-quickstart \
-DinteractiveMode=false
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-annotations</artifactId>
<version>1.7.1</version>
</dependency>
import org.codehaus.plexus.component.annotations.Component;
@Component(role = MyComponent.class)
public class MyComponent {
public void doSomething() {
System.out.println("Hello, World!");
}
}
import org.codehaus.plexus.DefaultPlexusContainer;
public class App {
public static void main(String[] args) {
try {
DefaultPlexusContainer container = new DefaultPlexusContainer();
MyComponent myComponent = container.lookup(MyComponent.class);
myComponent.doSomething();
} catch (Exception e) {
e.printStackTrace();
}
}
}
mvn clean install
java -cp target/my-library-1.0-SNAPSHOT.jar com.example.App
<component-set>
<components>
<component>
<role>com.example.MyComponent</role>
<role-hint>myComponent</role-hint>
<implementation>com.example.MyComponent</implementation>
</component>
</components>
</component-set>