In previous versions of the plugin (1.x and 2.x) the process to download and configure JMeter occurred every time you ran a test because we were not using the maven phases correctly. This means that if you ran 2 tests one after the other, your first test run would be cleaned out and overwritten when the second test run happened.
Configuration is tied to a specific maven phase because that's the way maven is supposed to work.
If you run compile and then jmeter in separate commands it should work fine, the compile command will generate the config.json and then when you run the jmeter tests it will find the config.json and use it.
mvn clean compile
If you are cleaning in between commands, however it won't work because the clean command will clean out your target directory (e.g. mvn clean compile, followed by mvn clean jmeter:jmeter
if you just want to run everything as one you should just use
Doing this will generate a new JMeter instance in your target folder and then run tests using it so that you don't lose your old test run, so you can run this multiple times and end up with multiple isolated folders.
This has been thought about to give you maximum flexibility, whilst trying to ensure that old test runs (and old configured Jmeter instances) are not lost unless you specifically want to remove them (using the clean command)